import sys, pygame
velocity = 0
acceleration = 0.1
ycord = 50
while 1:
pygame.time.Clock().tick(10)
velocity -= acceleration
ycord += velocity
if ycord <= 0:
velocity *= -1
print (ycord)
答案 0 :(得分:0)
之所以发生这种情况,是因为仅在ycord
变为负值之后速度才反转。
要更改此行为,必须在ycord达到零时计算速度并更改符号。
或者简单地,选择一个更好的起点ycord
,以使球精确地达到0,并且永远不会进入负范围。
我认为,如果您将初始ycord更改为52.8,您会发现有所不同。
就物理学而言,您正在模拟阻尼效果,因为球从负ycord
变为0时会损失能量。因此,当ycord变为零时,其开始时的速度要小于它当它越过零时。