台球比赛碰撞

时间:2012-02-27 15:41:25

标签: collision-detection pygame

我选择为课堂写一个台球游戏。一切顺利,但我想提高球碰撞的真实感。

对于每个球,我有一个pygame矩形,这意味着,球中心,球的直径和游戏中的位置。还有速度矢量(u_x,u_y)。

此时我用碰撞检查碰撞,但我可以改变测量中心球的距离。

我已经阅读过关于动量方程守恒的内容,但是没有考虑球位置。两个球的正面碰撞不同于侧向碰撞。

有人可以在碰撞后考虑球位置的碰撞后新球速度的公式中帮助我。非常感谢!

1 个答案:

答案 0 :(得分:1)

模块euclid会有所帮助。它包含一个vector类,它有normal(),dot()等... http://partiallydisassembled.net/euclid.html(你可以将模块复制到项目文件夹中,无需安装。)

对于公式,请检查:https://gamedev.stackexchange.com/a/7901/6776http://archive.ncsa.illinois.edu/Classes/MATH198/townsend/math.html#COLLISION

注意:物理学变得越复杂,您需要使用物理引擎越多,例如[在此输入链接描述] [pymunk]或ODE。但是,这是一个很好的学习经历。