我和我的团队正在使用 C++/SDL/OpenGL 开发一个 2D 平台游戏,我们已经定义了一个碰撞系统,但是我们在检查与 tilemap 的碰撞时遇到了问题。
瓷砖 map 的瓷砖是 32x32,所以我们尝试定义玩家在 X 和 Y 方向的最大速度小于 32,因为在这种情况下我们发现问题是如果速度大于瓷砖尺寸,当检查碰撞时,它的位置更新速度超过 32,所以在这种情况下,位置会跳过一个图 block ,这会给验证带来很大的问题,所以目前我们将 X 和 Y 速度限制为 30,但是我们不知道如何使速度大于图 block 大小而不丢失对某些可能被跳过的图 block 的完整碰撞检测。
最佳答案
基本上,您需要检查固定关卡几何框与移动框从(位置)移动到(位置+速度)形成的形状之间的碰撞,而不是简单的框/框碰撞。
关于c++ - 使用 Tiles 检查 2D 平台游戏中的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8361814/