c++ - 使用 Tiles 检查 2D 平台游戏中的碰撞

标签 c++ 2d collision

我和我的团队正在使用 C++/SDL/OpenGL 开发一个 2D 平台游戏,我们已经定义了一个碰撞系统,但是我们在检查与 tilemap 的碰撞时遇到了问题。

瓷砖 map 的瓷砖是 32x32,所以我们尝试定义玩家在 X 和 Y 方向的最大速度小于 32,因为在这种情况下我们发现问题是如果速度大于瓷砖尺寸,当检查碰撞时,它的位置更新速度超过 32,所以在这种情况下,位置会跳过一个图 block ,这会给验证带来很大的问题,所以目前我们将 X 和 Y 速度限制为 30,但是我们不知道如何使速度大于图 block 大小而不丢失对某些可能被跳过的图 block 的完整碰撞检测。

最佳答案

Sweep tests .

基本上,您需要检查固定关卡几何框与移动框从(位置)移动到(位置+速度)形成的形状之间的碰撞,而不是简单的框/框碰撞。

关于c++ - 使用 Tiles 检查 2D 平台游戏中的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8361814/

相关文章:

c++ - C++中私有(private)继承抽象基类是什么意思

c++ - 用2个方阵模拟matlab的mrdivide

c++ - 如果没有 C 标准库,有没有更好的方法来查找任意数字的日志?

c - 减少C中二维连接的时间

swift - 初学者 swift Sprite 工具包 - 节点碰撞检测帮助(SKPhysicsContact)

c++ - 为什么使用 GetModuleHandle 获取基地址有效?

canvas - JavaFX Canvas 绘制了很多对象(<250.000 => 500x500px)

geometry - 如何计算垂线的坐标?

c++ - 如何移动多个矩形作为碰撞响应?

java - 我需要帮助在 java 平台游戏中创建碰撞系统