gpt4 book ai didi

javascript - 尝试在 JS 和 Canvas 中进行非常简单的碰撞

转载 作者:行者123 更新时间:2023-12-03 08:23:17 25 4
gpt4 key购买 nike

我有这个游戏,我计划将其制作成某种射击游戏(考虑到我目前的水平,还请说明这是否太难),并且我正处于让事情发生碰撞的时刻,比如具有点矩形的玩家(应该很快就会制作球体)。

我看过不同的例子,比如 Collision Detection with javascript on the html canvas element without using jqueryhttp://jlongster.com/Making-Sprite-based-Games-with-Canvas但似乎我对代码的理解不够好。这是我所拥有的:

if( (rX + (rX + 20)) >= x && rX <= (x + 20) && (rY + (rY + 20)) >= y && rY <= (y + 20)){
poeng++;
genererRandom();
}

没用,所以尝试了这个:

if (x >= rX || (rX+19) < (x+49) ||
y >= rY || (rY+19) < (y+49)) {
poeng++;
genererRandom();
}
  • x 是我正在使用的 Sprite 的 x 位置(大小为 60x60)
  • y 是 x 的 y
  • rX 是一个随机生成的数字和点矩形的 x 位置(再次,我认为我应该尽快将其变成球体)
  • rY 是 rX 的 y

另外,如果你想看更多代码,尽管它大部分不是我的,但我得到了一个未完成的游戏,我可以用它来制作一些东西。

最佳答案

给定一个宽度=w和高度=h的二维轴对齐矩形,其原点为xy 位于左上角,检查位置 rxry 的点 r 是否位于矩形内将是:

if (rx >= x && rx <= x+w && ry >= y && ry <= ry+h)
{
// we're inside the rectangle!
}

简单来说,这意味着:

  • 检查点的 x 是否位于矩形的 x 和 x+w 之间
  • 检查点的 y 是否位于矩形的 y 和 y+h 之间

在数学中你可以这样写(但在 JS 中不起作用):

x <= rX <= x+w     ∧     y <= rY <= y+h

上面的陈述意味着坐标系的原点位于左上角,并且值向右下角增加。

关于javascript - 尝试在 JS 和 Canvas 中进行非常简单的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33650024/

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