gameQuery冲突检测
gameQuery collision detection
这是我第一次探索使用JavaScript构建游戏的jQuery和gameQuery,所以我问一些看起来很天真的问题,但实际上我无法理解。
我正在开发一款类似《太空入侵者》的游戏,检测玩家导弹和敌人之间的碰撞。
这是我的代码:
我的敌人级的定义
function Enemy(node){
this.node = $(node);
this.pts_value = 0;
return true;
}
这是我用来添加十个相邻的敌方精灵的代码。敌人一起向左右移动
$.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网站上学习文档教程。
感谢任何帮助,
我看不出您的代码有任何问题。我只能给你几个建议:
- 您是否使用addGroup函数创建了"enemy_group">
- "enemy_group"是否嵌套在诸如自定义div之类的特殊内容中?为了进行碰撞检测,您需要一个仅由精灵和组(以及平铺贴图(组成的父级链
- 是嵌套在精灵中的"enemy_group",如果是这样,那就不好了,因为您需要在方法调用中添加该精灵的选择器,并且该精灵将包含在冲突元素列表中
- ".playerMissiles"也是如此
只是为了确定你使用的是什么版本的gameQuery和jQuery?gitHub的最后一个版本不稳定,我不会建议使用它,而是用户0.5.1。
您可以使用jquery冲突插件,这样就可以避免自己处理逻辑。
希望这能有所帮助。干杯
相关文章:
- 如何检测是否有溢出
- 使用JavaScript和HTML5画布进行冲突检测
- 如何在three.js中检测冲突
- Javascript/JQuery中的多DIV冲突检测
- three.js服务器端冲突检测错误
- 从数组绘制级别后的冲突检测
- 如何在 javascript 中检测两个图像之间的冲突
- 在 html canvas 元素上使用 javascript 进行冲突检测,而无需使用 jquery
- 关于不同屏幕尺寸的 Phonegap 游戏开发冲突检测
- 用于检测颜色冲突的 getImageData 不起作用
- 如何获取我的 x 和 y 值以检测 html5 画布中两个图像之间的冲突
- 如何检测与JS的冲突
- JavaScript中一帧的冲突检测
- Javascript 2阵列冲突检测
- Javascript画布,通过数组进行冲突检测不起作用
- 在jquery中检测两个图像之间的冲突
- 在html/css/javascript中移动对象检测与其他对象的冲突
- gameQuery冲突检测
- 在调整窗口大小时检测表单元格冲突
- jQuery 拖动与冲突检测