所以我在编写一个斯诺克游戏,我决定找出如何使球相互碰撞的最好方法是在一个单独的程序中这样做,然后复制进去。我是一个很有能力的数学家,所以我坐下来,画了一个事件,然后用数学的方法研究了实际发生的事情。在
我的方法是将每个球的初始速度分解成xr-和yr分量,在这个参照系中,xr分量与穿过每个球中心的矢量成一直线,yr分量垂直于此。然后我简单地切换球的xr分量,保持yr分量不变,然后计算速度的x和y分量回到标准参考系中。在
由于某种原因,不管是数学错误还是编程错误,我似乎都无法使它发挥作用。以下是我到目前为止所得到的,我已经浏览了互联网上几乎每一个相关的网页,以及这个网站上所有类似的问题。我也不是一个精通编程的人。在from visual import *
dt = 0.01
r = 5
red = sphere(pos=(-25,25,0),radius = r,color=color.red)
green = sphere(pos=(25,-25,0),radius = r,color=color.green)
red.velocity = vector(10,-10,0)
green.velocity = vector(-10,10,0)
def posupdate(ball):
ball.pos = ball.pos + ball.velocity*dt
def ballhit(ball1,ball2):
v1 = ball1.velocity
v1x = ball1.velocity.x
v1y = ball1.velo