Forráskód Böngészése

Optim: managing alien health

Fabrice Ecaille 11 éve
szülő
commit
fc0042a784
2 módosított fájl, 9 hozzáadás és 7 törlés
  1. 2 2
      js/models/aliens.js
  2. 7 5
      js/spaceinvaders-core.js

+ 2 - 2
js/models/aliens.js

@@ -17,14 +17,14 @@ var ALIENS = {
 		animation 	: ALIENS_TYPE[0]
 	},
 	alien2 : {
-		health 		: 1,
+		health 		: 2,
 		weapon 		: WEAPONS.ALIEN,
 		score 		: 10,
 		aggression 	: 0.001,
 		animation 	: ALIENS_TYPE[1]
 	},
 	alien3 : {
-		health 		: 1,
+		health 		: 3,
 		weapon 		: WEAPONS.ALIEN,
 		score 		: 20,
 		aggression 	: 0.0015,

+ 7 - 5
js/spaceinvaders-core.js

@@ -216,6 +216,7 @@ Game = {
 				posx = $(this).x(),
 				weapon = $(this)[0].weapon;
 				
+			// Lost shots
 			if( posy < -$(this).height() || posy > PLAYGROUND_HEIGHT || posx < -$(this).width() || posx > PLAYGROUND_WIDTH ) {
 				Game.shots.lost = Game.shots.lost + 1;
 				this.remove();
@@ -227,23 +228,24 @@ Game = {
 			if( weapon.callback ) {
 				weapon.callback($(this));
 			} else {
+				// Shots collisions
 				var collisions = $(this).collision(".alien,."+$.gQ.groupCssClass);
 				collisions.each( function() {
 					var alien = $(this)[0],
-						aliensNotInArray = $.grep( Game.aliens, function( elementOfArray, index) {
-						return elementOfArray.id == alien.id;
-						}, true);
 						alienX = alien.alien.x,
 						alienY = alien.alien.y,
 						alienWidth = alien.alien.width,
 						alienHeight = alien.alien.height;
-					Game.aliens = aliensNotInArray;
+					
 					alien.alien.hit();
+					Game.aliens = $.grep( Game.aliens, function( elementOfArray, index) {
+								return elementOfArray.health == 0 && elementOfArray.id == alien.id;
+							}, true);
 					var remainingAliens = $(".alien").length;
 					if( remainingAliens == Game.wave.bonus[0] || remainingAliens == Game.wave.bonus[1] ) {
 						Game.bonus(alienX, alienY, alienWidth, alienHeight);					
 					}
-				})
+				});
 				if( collisions.length > 0 ) {
 					this.remove()
 				}