【发布时间】:2014-07-08 22:33:35
【问题描述】:
我正在用 as3 编写一个碰撞检测系统。它旨在简单:我有一些移动矩形和一些静态矩形。当一个移动的矩形与另一个矩形发生碰撞时,我想将源(碰撞)矩形移动到碰撞区域之外,但仍尽可能靠近(基于源的轨迹)。
在每一帧上,我都会更新移动矩形的位置并检查所有矩形之间的接触。
下图代表如下:
a:框 #1 以 45 度角向静态矩形 (#2) 移动。
b:在几次“滴答”之后,我们看到 Rectangle #1 移动到 Rectangle #2 的空间(静态空间)。这是第一次检测到撞击的点。
c:现在——我真正想做的事! - 将源 Rectangle #1 移动到 Rectangle #2 碰撞区域的外围。
...所以给定 Rectangle #1 的移动角度,并且知道 Rectangle #1 和 #2 的整体区域和位置,是否有一个公式可以为 Rectangle # 提供最接近的 x 和 y 坐标1 被移动到(这样我们就不再完全碰撞,正如我们在阶段'b'中看到的那样)。
显然,我想要一个可以在任何移动角度和各种矩形形状下工作的解决方案。
在此先感谢您抽出宝贵时间 :)
【问题讨论】:
-
速度是否保证低于任何矩形的宽度?我问是因为这大大增加了难度
-
还有,这些盒子是否旋转了?如果其中任何一个是正确的,那么您就是在冒险进入游戏引擎领域,这对于一个问题来说太宽泛了
-
否 - 没有旋转。并且速度可能大于矩形的宽度或高度。谢谢!
标签: actionscript-3 collision-detection