相关疑难解决方法(0)

两轴的2D Platformer碰撞问题

我正在使用C ++和SDL开发一个小型2D平台游戏/格斗游戏,并且在碰撞检测方面遇到了很多麻烦。

这些关卡由一组拼贴组成,我使用一个for循环遍历每个贴砖(我知道这样做可能不是最好的方法,对此我可能也需要帮助)。对于角色的每一侧,我都将其沿该方向移动一个像素,并检查是否有碰撞(我还要检查角色是否沿该方向移动)。如果发生碰撞,我将速度设置为0,然后将播放器移至图块的边缘。

我的问题是,如果我首先检查水平碰撞,并且播放器每帧垂直移动一个像素以上,它将处理水平碰撞并将角色移动到瓷砖的侧面,即使瓷砖低于(或高于)性格。如果我先处理垂直碰撞,除了水平轴会执行相同操作外,其他操作都一样。

如何在没有这些问题的情况下处理两个轴上的碰撞?有没有比我做的更好的方法来处理碰撞?

c++ sdl 2d collision-detection

5
推荐指数
1
解决办法
4417
查看次数

标签 统计

2d ×1

c++ ×1

collision-detection ×1

sdl ×1