【问题标题】:How to update Sprite position quickly with Pygame如何使用 Pygame 快速更新 Sprite 位置
【发布时间】:2020-10-02 19:22:44
【问题描述】:

我最近正在使用 Pygame 构建一个模拟工具。对于这个模拟器,我展示了一个字段和一个遍历它的机器人。模拟器的工作方式是将Pose2D(坐标)对象列表输入到主循环中,机器人将在循环的每次迭代中将自己呈现在新位置。机器人必须遵循一些路径,这些路径到此为止只是线,但很快也会扩展到样条线。为了遵循这些线,我获取点之间的距离,获取距离和斜率,然后将距离除以每条线的步长或更新大小。步长是机器人在跟随路径时更新其位置的次数。我注意到的是,更多的更新会减慢整个窗口的速度,并导致机器人在场地上缓慢移动,而更新大小较小,它移动得更快。但是,我感觉这种方法对于平滑运动来说效率很低,并且由于 Pygame 在某种程度上依赖于硬件,因此需要调整每个人的系统才能以相同的 fps 运行或以相同的速度更新机器人。有没有办法在以相当不错的速度更新的同时规范化系统并提高渲染速度? 您可以看到在trajectory.py 中生成的列表,并在此处传递到main.py。随意浏览存储库以获取您可能有的任何其他建议。提前非常感谢!

【问题讨论】:

  • 您的代码链接无效。通常,您会根据帧速率来调整时间。移动也乘以自上次帧更新以来经过的时间。 Pygame 教程解释了这个过程。

标签: python python-3.x pygame simulator


【解决方案1】:

所以对于这个问题,代码的当前设置最终变得严重依赖于 CPU 的周期时间。为了解决这个问题,应该将时间增量变量乘以速度,然后添加到精灵的当前坐标位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 2020-12-09
    相关资源
    最近更新 更多