我正在研究像游戏这样的太空入侵者。我在碰撞检测方面遇到问题,它会检测到碰撞,所以当我添加分数或将游戏设置为多个分数时,或者游戏结束多次。 (虽然我只想添加一次得分或结束游戏一次)。
我试过了: - 移除击中玩家的子弹对象。 - 更改项目符号的x和y值 - 移除子弹的容器 - 将项目符号的大小设置为0
所有这些似乎仍无法正常运作。
for(var k = 0; k < enemyBullets.children.length; k++) {
if(enemyBullets.children[k].x >= character.x + characterWidth || enemyBullets.children[k].x + size <= character.x || enemyBullets.children[k].y >= character.y + characterHeight || enemyBullets.children[k].y + size <= character.y)
{
//not {
}else {
console.log("game over");
for(var j = 0; j < enemyBullets.children.length; j++) {
enemyBullets.removeChildAt[j];
}
stage.removeChild(enemyBullets);
enemyBullets.children[k].y = -20;
enemyBullets.children[k].x = -20;
size = 0;
gameOver();
}
}
游戏似乎经常玩游戏。当玩家子弹击中敌人时,我使用相同的代码来添加分数,然后它增加了很多分数。