【发布时间】:2013-11-01 13:28:22
【问题描述】:
我正在尝试使用 qt 创建游戏。我在图形视图中有一些障碍(QPixmapItem)。我有一个球,我想要的是它可以从障碍物上反弹。如何检测障碍物表面的法线,以便计算新的移动方向?例如:
------------------------------
/ \ |
/ \ |
/ \ v
/ \ ^
/ \ |
【问题讨论】:
-
也许你应该看看colliding mice example。
-
很明显,球从边界反弹后,运动方向与边界的夹角正弦值应该相同。
-
我已经阅读了该教程,它非常有帮助。然而,在那个例子中,老鼠转向随机方向以避免碰撞,而我需要计算碰撞后球应该移动的角度。
-
这个问题是题外话,因为它是一个数学问题。此外,您应该使用现有的 2D 物理引擎(例如 Box2d),而不是自己发明。
-
这不是一道数学题。如果我知道表面法线/切线的角度,计算方向就很容易了。我只能检测是否发生碰撞。查看 QGraphicsItem 的功能,shape() 可能有用,但我仍然没有弄清楚如何使用。
标签: c++ qt qgraphicsview