gpt4 book ai didi

javascript - Canvas 碰撞?

转载 作者:行者123 更新时间:2023-11-30 08:52:53 28 4
gpt4 key购买 nike

测试我的游戏,当用户和怪物发生碰撞时,我希望弹出警报但没有成功:

function die() {

for (var i = 0; i < monster.length; i++) {
if (user.destinationX === monster[i].destinationX && user.destinationY === monster[i].destinationY {
alert("die");
}
}
}

最佳答案

我将提供一个带有解释的合并答案。如果您喜欢这个解释,请注明出处 karaxunauser2317489 .

正如 Kolink 所提到的,您的问题是吃 bean 故障,或者更确切地说,您的怪物不仅仅是像素 - 它们有自己的大小。您目前正在检查一个对象的来源,看看它是否与另一个实体的来源完全相同——这种情况很少见,如果有的话。相反,您需要检查的是怪物是否至少有一个共同点(换句话说,就是碰撞检查)。

这可以通过检查一个原点是否在另一个的边界框内来简单地完成,或者换句话说,如果 monster2.x <= monster1.x <= (monster2.x+monster2.width)monster2.y <= monster1.y <= (monster2.y+monster2.height) . Arnelle Balane 在没有解释的情况下提供的代码就是这样做的。

这并不总是一个很好的近似值,因为它盲目地假设您的怪物是正方形。要使其成为一个圆圈,您需要检查一个怪物的中心是否在另一个中心的特定距离内(距离是公制的,并使用 sqrt(pow(x,2)+pow(y,2)) 计算。不过,所有这些都是更详细的信息。

关于javascript - Canvas 碰撞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16217591/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com