diff --git a/css/spaceinvaders.css b/css/spaceinvaders.css index e03debe..28c1c47 100644 --- a/css/spaceinvaders.css +++ b/css/spaceinvaders.css @@ -23,6 +23,10 @@ background-color: orange; } +.shipShot.shotCorn { + background-color: white; +} + .alienShot { background-color: red; } diff --git a/js/spaceinvaders-core.js b/js/spaceinvaders-core.js index be5616d..b141bfd 100644 --- a/js/spaceinvaders-core.js +++ b/js/spaceinvaders-core.js @@ -183,7 +183,7 @@ Game = { $.each(Game.aliens, function(index, alien ) { alien.move(); if( alien.health > 0 && Math.random() < alien.aggression ) { - alien.fire($("#aliensShots"), "alienShot"); + //alien.fire($("#aliensShots"), "alienShot"); } }); }, @@ -200,8 +200,10 @@ Game = { shots.each(function(i,e) { var posy = $(this).y(), + posx = $(this).x(), weapon = $(this)[0].weapon; - if( posy < -$(this).height() ) { + + if( posy < -$(this).height() || posy > PLAYGROUND_HEIGHT || posx < -$(this).width() || posx > PLAYGROUND_WIDTH ) { this.remove(); return; } diff --git a/js/spaceinvaders-models.js b/js/spaceinvaders-models.js index 07f5896..864a6e7 100644 --- a/js/spaceinvaders-models.js +++ b/js/spaceinvaders-models.js @@ -97,7 +97,7 @@ heriter(CarotWeapon.prototype, Weapon.prototype); function CornWeapon() { "use strict"; this.directionY = -1; - this.stock = 10; + this.stock = 3; this.clazz = "corn"; this.load = 1; this.max_load = 1; @@ -114,6 +114,25 @@ function CornWeapon() { if( shot.y() < mediumAlien ) { shot.remove(); + var shipShots = $("#shipShots"); + for( var i = 0; i < 8; i++) { + var cos = Math.cos( (Math.PI / 4) * i ), + sin = Math.sin( (Math.PI / 4) * i); + if( Math.abs(cos) < 0.01 ) { + cos = 0; + } + if( Math.abs(sin) < 0.01) { + sin = 0; + } + shipShots.addSprite( "shotCorn" + i, { posx : shot.x() + 5 * cos, posy : shot.y() + 5 * sin, width: 2, height: 2}); + var shotCorn = $("#shotCorn" + i); + shotCorn.addClass("shipShot").addClass("shotCorn"); + $("#shotCorn" + i)[0].weapon = $.extend({ + directionX : cos < 0 ? -1 : cos > 0 ? 1 : 0, + directionY : sin < 0 ? -1 : sin > 0 ? 1 : 0, + speed : 1 + }, shot.weapon); + } } } }