我正在制作这个带有矩形的C ++程序,无论是水平还是垂直,都需要通过点击它们并检查其他矩形是否会碰到它来进行拖动。
现在,在我的情况下,我有这种情况,如果用户移动鼠标非常快。碰撞检测不起作用,我的意思是the other coordinates are skipped out or jump out on a very large distance
。我假设在我的程序中添加鼠标敏感度可以改变这种不需要的行为。
我使用GLFW
进行窗口化。我认为glfwSetMousePos()
可以做我想要的但我不知道应该用什么数学来达到这个目的。如果可能的话,我不想使用其他库。有人可以显示一些代码我怎么能这样做?
谢谢!
更新
遗憾的是,在我的情况下,鼠标灵敏度不是问题。我想我可以通过使用大量if
扩展我的代码来解决这个问题。但是,对于那些正在寻找此类问题的人,我建议this。只需运行该代码即可将其用作单独的程序。
答案 0 :(得分:0)
听起来你需要一种能够以任何速度处理穿透的碰撞检测算法。
查看全面的碰撞检测。它几乎就是所有物理引擎的工作方式。