这是我第一次探索使用JavaScript构建游戏的jQuery和gameQuery,所以我问了一些可能看起来很幼稚的东西,但我真的无法得到它。gameQuery碰撞检测
我正在开发一个像太空侵略者这样的游戏,探测玩家导弹和敌人之间的碰撞不工作。
这是我的代码:
我的敌人类
function Enemy(node){
this.node = $(node);
this.pts_value = 0;
return true;
}
这是我使用到下添加10个或敌精灵彼此代码的定义。敌人一起移动到左边,
$.each(new Array(10), function(index, value) {
$("#enemy_group").addSprite("enemy2_"+index,{animation: enemies[2],
posx: index * 55, posy: 0, width: 48, height: 48})
$("#enemy2_"+index).addClass("enemy");
$("#enemy2_"+index)[0].enemy = new Enemy($("#enemy2_"+index));
$("#enemy2_"+index)[0].pts_value = 150;
});
所以当我需要移动的敌人,我的敌人一起移动的权利,我动议包括所有的精灵“#enemy_group”
if(ENEMY_TO_RIGHT){
var enemiesNewPos = (parseInt($("#enemy_group").css("left"))) + ENEMY_SPEED;
if(enemiesNewPos < PLAYGROUND_WIDTH - 550){
$("#enemy_group").css("left", ""+enemiesNewPos+"px");
} else {
ENEMY_TO_RIGHT = false;
}
} else {
var enemiesNewPos = (parseInt($("#enemy_group").css("left"))) - ENEMY_SPEED;
if(enemiesNewPos > 0){
$("#enemy_group").css("left", ""+enemiesNewPos+"px");
} else {
ENEMY_TO_RIGHT = true;
}
}
组
终于碰撞检测,我想删除敌方精灵的玩家导弹击中,每枚导弹精灵有一个附加的类名“.playerMissiles”
$(".playerMissiles").each(function(){
var posy = parseInt($(this).css("top"));
if(posy < 0){
$(this).remove();
return;
}
$(this).css("top", ""+(posy - MISSILE_SPEED)+"px");
//Test for collisions
var collided = $(this).collision(".enemy, .group");
if(collided.length > 0){
//An enemy has been hit!
collided.each(function(){
$(this).setAnimation(enemies[0], function(node){$(node).remove();});
})
}
});
我是弗洛请阅读gameQuery网站上的文档教程。
赞赏任何帮助,谢谢,
感谢您的帮助,但问题以其他方式解决 –