Browse Source

Working on SpaceGame

Josh Engebretson 11 years ago
parent
commit
e5b6421f74

+ 48 - 0
SpaceGame/Resources/Components/Bullet.js

@@ -0,0 +1,48 @@
+var game = Atomic.game;
+var node = self.node;
+
+function start() {
+
+	var laserSound = game.getSound(self.isPlayer ? "Sounds/laser01.wav" : "Sounds/laser02.wav");
+    var sprite2D = node.createComponent("StaticSprite2D");
+
+    if (self.isPlayer)    
+    	sprite2D.sprite = game.getSprite2D("Sprites/blue_beam.png");
+    else
+    	sprite2D.sprite = game.getSprite2D("Sprite2D", "Sprites/green_beam.png");
+
+    sprite2D.blendMode = Atomic.BLEND_ADDALPHA;
+
+    self.soundSource = node.createComponent("SoundSource");
+    self.soundSource.soundType = Atomic.SOUND_EFFECT;
+    self.soundSource.gain = 0.75;
+    self.soundSource.play(laserSound);
+
+    node.position2D =  self.spawnPosition;
+
+    if (!self.isPlayer)
+    {
+    	node.roll(180);
+    }
+
+}
+
+function update(timeStep) {	
+
+	var speed = self.isPlayer ? 8 : 5;	
+	speed *= timeStep;
+	node.translate2D([0, speed]);
+
+    if (self.isPlayer) {        
+
+        var bpos = node.position2D;
+
+        // off the top of the screen
+        if (bpos[1] > SpaceGame.halfHeight)
+        {
+            Atomic.Destroy(node);
+            return;
+        }
+    }
+
+}

+ 67 - 1
SpaceGame/Resources/Components/Player.js

@@ -1,6 +1,62 @@
 var game = Atomic.game;
+var input = game.input;
+
 var node = self.node;
 
+self.allowMove = true;
+self.allowShoot = true;
+self.shootDelta = 0;
+
+function doShooting(timeStep)
+{
+    if (self.shootDelta > 0) {
+    	
+        self.shootDelta -= timeStep;
+        if (self.shootDelta < 0)
+            self.shootDelta = 0;
+
+        return;
+    }
+
+    if (!input.getKeyDown(Atomic.KEY_W))
+        return;
+
+    self.shootDelta = 0.15;
+
+    var pos = node.position2D;
+    pos[1] += .5;
+
+    SpaceGame.spawnBullet(pos, true);
+
+}
+
+function moveShip(timeStep)
+{
+    var speed = 3.0 * timeStep;
+
+    var pos = node.position2D;
+
+    var left = false;
+    var right = false;
+
+    
+    if (input.getKeyDown(Atomic.KEY_A) || input.getKeyDown(Atomic.KEY_LEFT))
+        pos[0] -= speed;
+
+    if (input.getKeyDown(Atomic.KEY_D) || input.getKeyDown(Atomic.KEY_RIGHT))
+        pos[0] += speed;
+
+    if (pos[0] < -SpaceGame.halfWidth + 2)
+        pos[0] = -SpaceGame.halfWidth + 2;
+
+    if (pos[0] > SpaceGame.halfWidth - 2)
+        pos[0] = SpaceGame.halfWidth - 2;
+
+
+    node.position2D = pos;
+
+}
+
 function start() {
 
 	var spaceSheet = game.getSpriteSheet("Sprites/spacegame_sheet.xml");
@@ -9,7 +65,17 @@ function start() {
     sprite2D.sprite = spaceSheet.getSprite("spaceship_mantis");
     sprite2D.blendMode = Atomic.BLEND_ALPHA;    
     
-    node.position2D =  [0, 0];
+    node.position2D =  [0, -SpaceGame.halfHeight + 1];
+
+}
+
+function update(timeStep) {
+
+	if (self.allowShoot)
+		doShooting(timeStep);
+
+    if (self.allowMove)
+        moveShip(timeStep);
 
 }
 

+ 15 - 1
SpaceGame/Resources/Components/SpaceGame.js

@@ -1,8 +1,22 @@
 
-
 var game = Atomic.game;
 var scene = game.scene;
 
+// expose ourselves as a global
+SpaceGame = self;
+
+self.halfWidth = game.graphics.width * Atomic.PIXEL_SIZE * 0.5;
+self.halfHeight = game.graphics.height * Atomic.PIXEL_SIZE * 0.5;
+
+self.spawnBullet = function(pos, isPlayer) {
+
+    var bulletNode = scene.createChild("Bullet");
+    bullet = bulletNode.createComponent("JSComponent");
+    bullet.isPlayer = isPlayer;
+    bullet.spawnPosition = pos;
+    bullet.className = "Bullet";    
+}
+
 function spawnSpace() {
 
     var spaceNode = scene.createChild("Space");