测试 2 个精灵是否在 Javascript 中接触

Testing if 2 Sprites are touching in Javascript

我目前正在开发一款简单的游戏。 我有一个射弹和一个敌人。只要给定的 Sprites 接触,我希望变量 colliding 为 1。这是我的代码:

if (projectileposX >= enemyposX + 100 || projectileposX + 160 <= enemyposX) { colliding = 0; }
if (projectileposY >= enemyposY + 100 || projectileposY + 160 <= enemyposY) { colliding = 0; }
else { colliding = 1; }

“射弹”精灵大小为 160x160 像素。
“敌人”精灵是 100x100px 大。

我现在想测试变量 colliding 和 运行 代码是否等于 1。 问题是:它的行为就像碰撞总是 1,虽然我 相信 不应该是这种情况。

但是因为我知道这总是用户的问题而且我看不到任何错误我在这里问是否有人能看到错误。

我也试过将两个 if 语句合并为一个,导致同样奇怪的行为:

if (projectileposY >= enemyposY + 100 || projectileposY + 160 <= enemyposY || projectileposX >= enemyposX + 100 || projectileposX + 160 <= enemyposX) {
colliding = 0;
} else {
colliding = 1;
}
if (colliding == 1) {
//do stuff
}

澄清一下:if 语句不测试它是否接触,它测试它是否 接触。

我知道我又是问题所在。当声明敌人的位置以使用此代码对其进行测试时,我声明他们是错误的。这些变量然后保持未定义状态,因此它不知道如何处理它。 上面的两个代码现在都可以正常工作,而无需更改单个代码字母。 仍然感谢所有至少尝试提供帮助的人。