【问题标题】:Pygame Draw Circle Causing LagPygame画圈导致滞后
【发布时间】:2020-05-19 22:48:08
【问题描述】:

我正在 pygame 中创建一个无限滚动的 2d 太空战斗游戏。我刚刚实现了一个视差星形背景,但我的帧率现在是 30fps。你如何获得更高的性能,我尝试创建 blitting 而不是 draw.circle 和 hwsurface,但不能增加 fps。 Download zip

【问题讨论】:

    标签: python pygame lag


    【解决方案1】:

    我建议您不要像听起来那样动态创建星星背景。而是在开始时创建一个包含它的表面,然后滚动它。将其缠绕在自身上,这样当您越过边缘时,它会从头开始继续。您需要确保两条边缘融合并显得无缝。

    然后你可以只将背景的一部分blit到屏幕上,你不会发现它对你的性能有太大影响,而不是一直动态生成它。

    事实上,如果你提前做,你可以做一些比圆圈更有趣的事情。你可以做不同大小和亮度(颜色)的星星。甚至可能产生眩光效果。

    在 OP 评论后编辑:

    根据您的描述,我认为您正在滚动它而不是旋转。如果您正在进行旋转,我假设您使用 pygame.transform.rotate() 进行旋转。如果我需要旋转图像,我过去做过的一件事是再次事先旋转它们并保存它们。如果您只是旋转,那可以很好地工作(即使保存 360 度旋转的图像也不是那么糟糕的记忆),但如果您正在滚动和旋转,那将无法正常工作

    【讨论】:

    • 我刚刚实现了这个,但现在每次星面需要旋转而不是正好 90 度时我都会出现延迟。
    猜你喜欢
    • 1970-01-01
    • 2017-08-02
    • 2020-10-25
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多