我正在使用瓷砖和实体制作类似于Terraria(使用C#中的XNA 4.0)的游戏。我已经创建了计算(使用轴对齐的边界框)的函数,如果NPC等将以当前速度与图块碰撞。
想要一个函数,当它第一次碰到一个图块时计算轴对齐矩形的位置(图块存储在一个二维数组中,每个图块长度为1个单位,一半图块为0.5,依此类推)基本上就像遍历矩形当前所在的位置,直到它到达一个瓷砖并返回位置。 (我希望更高帧率的处理效率更高。)
我试过这样做,以便如果物体以当前速度碰撞,那么它就不会移动。但是如果它快速移动的物体那么它会导致它停止可能的碰撞。无论如何,我想要了解矩形首次碰撞的位置以使物体反弹等信息(以及使物体无法通过墙壁等)。
这个问题非常具体,如果我需要澄清任何事情,请告诉我。