gpt4 book ai didi

javascript - 边缘动画程序的简单碰撞检测

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:12 25 4
gpt4 key购买 nike

我搜索了类似的问题,但没有找到能回答我的特定情况的问题。我正在 Edge Animate 中创建一个非常基本的游戏,其中玩家的游戏 block (一个简单的矩形)可以在舞台上左右移动,并且玩家试图避免与在舞台上动画的其他各种简单矩形发生碰撞(沿 y 轴)以不同的速度(有点像 Frogger 的垂直版本)。我似乎无法找到一种简单的碰撞检测算法,它可以与 Edge Animate 一起使用来检测玩家的矩形何时与另一个矩形发生碰撞。这是我在 Edge Animate 中针对两个矩形的 compositionReady 操作的代码(试图让它提醒矩形正在碰撞:

var object1 = sym.getSymbol("BlueRectangle");
var object2 = sym.getSymbol("RedRectangle");
if (object1.x < object2.x + object2.width && object1.x + object1.width > object2.x &&
object1.y < object2.y + object2.height && object1.y + object1.height > object2.y) {

//物体相互接触 alert("糟糕!你坠毁了!"); setInterval(sym(e), 35);

但是当我运行程序时,没有碰撞检测。我究竟做错了什么?我错过了什么?有一个更好的方法吗?我所有的矩形都是轴对齐的。任何帮助将不胜感激。

最佳答案

看起来您正在检查它们是否完全重叠,而不是碰撞。如果存在任何重叠,而不仅仅是完全重叠,您要确保检测到碰撞。

本质上,打破与X和Y的重叠检测,改变&&s暗示1需要从左侧与 [2] 重叠,从右侧与 ||s 重叠,将其包裹在括号中,在其间放置一个 && 以及检查 y 中的冲突的类似语句。

这样的事情应该可行,但您需要知道对象的上边缘、左边缘、右边缘和下边缘在哪里(x 相对于对象的位置:左侧、中间、右侧?编辑:参见 imgur.com/GE2vVVB )

if ((object1.xright >= object2.xleft || object1.xleft <= object2.xright) && (object1.ytop >= object2.ybottom || object1.ybottom <= object2.ytop))

关于javascript - 边缘动画程序的简单碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30739314/

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