c++ - 碰撞时物体穿墙

标签 c++ openframeworks

我正在制作一款使用非常简单的碰撞检测的游戏。我没有使用 box 2D,因为它有点矫枉过正。基本上,它是乒乓球和 table 上足球的混合体。随着球的速度增加并具有非常高的速度,它最终会穿过它应该碰撞的墙。该代码适用于慢速和常规速度,但不适用于非常快的运动。

这是我的代码片段:

pos.x 是一个 vector ,它保存我的球的 x 位置。

if (pos.x - radius < wallLeft)
{
        pos.x = wallLeft + radius;
        vel.x *= -1;
}

我可以做些什么来改进它? 谢谢

最佳答案

尝试增加 wallLeft 一点,这样球的速度永远不会大于 wallLeft,似乎在你的球低于 0 之后它会出现故障(或者你有一些我不知道的代码),不熟悉框架或其余代码的工作方式,但这是解决它的最简单方法。如果你不想那样做,如果球的 x 小于 0,那么某处可能有一个代码会做一些事情,你必须让它更宽松一点,也许这样做,如果球的 x 是小于 -50,或类似的东西(玩这个数字直到它起作用)

关于c++ - 碰撞时物体穿墙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197513/

相关文章:

c++ - OpenFrameworks testApp 的 "Right Way"有 ofColor 成员?

ios - 让iPad屏幕关闭,但通过触摸唤醒(无锁) - - iOS 6.0/openFrameworks

c++ - 显式 DLL 1 函数失败

c++ - 排除一种类型的模板

c++ - Qt 中 QStandardItemModel 中的重复行

c++ - 你能在 Cocoa (Obj-C) 项目中使用 C++ 库吗?

c++ - 如何使用 openframework 的 ofMesh 正确导出 .obj?

linux - git 总是强制更改文件

c++ - QNetworkAccessManager : How to change post data at createRequest function

c++ - C++ 中忽略的 volatile 说明符