简单的弹跳计算出错了

2024-06-11 22:29:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着学习python,这样我就可以玩数学了。我一直在尝试用最小的物理量来实现一个非常简单的弹跳物体的模拟,但它似乎不能正常工作。计算应该给我一个波形图,但由于某些原因,数字一直在减少。这是Python中发生的某种数学工件吗?从我的理解来看,数字没有理由减少,因为我只使用非常琐碎的算术。你知道吗

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)

Tags: importsys原因数字数学算术pygame物体
1条回答
网友
1楼 · 发布于 2024-06-11 22:29:44

这是因为速度只有在ycord变为负值后才反转。 要改变这种行为,你必须计算ycord为零时的速度并改变符号。 或者简单地说,选择一个更好的起跑点ycord,这样球就刚好到达0并且永远不会进入负范围。 我想如果你把你最初的ycord改成52.8,你会看到不同。你知道吗

在物理学方面,你在模拟一个阻尼效应,因为球在从负ycord到0的过程中会失去能量。所以当ycord变为零时,它开始的速度比它过零时的速度小。你知道吗

相关问题 更多 >