I’ve got a basic Space Invaders type game going, and I can’t get it to recognise when the shot from the player hits the alien. (I’m only checking Alien2 atm, the one second from the left). Since they’re both moving, I’ve decided the only way to check for collisions is with either a range-based if statement (with 2 top coordinates and one left coordinate), or directly comparing the positions along the Y axis with Jquery.
I’m using the range-based solution at the moment, but so far it hasn’t worked (not sure why).
My code so far:
if (key == "87"/*&& document.getElementById('BarrelOne').id=='BarrelOne'*/){
var Invader2 = document.getElementById('Alien2');
var Shot1 = document.getElementById('ShortShot');
Shot1.style.webkitAnimationPlayState="running";
setTimeout(function(){
Shot1.style.webkitAnimationPlayState="paused";
}, 1200);
if(document.elementFromPoint(625.5, 265.5) == Shot1){
Invader2.style.visibility="hidden";
}
};
Jsfiddle:
I did something similar, and i found that it was much easier to achieve using gameQuery.
to test for collisions:
you can see full working example here
EDIT
If you’re having trouble check out the API. For example, to find out how to use collisions check this part of the API.
the
collisionworks in the following way:So, write something like this:
or, to hide them both: