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

问题描述

我目前正在开发一个简单的游戏。 我有一个射弹和一个敌人。我希望变量 colliding 在给定的 Sprite 接触时为 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 语句不测试它是否接触,它测试它是否接触。

解决方法

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