我目前正在做一个超级马里奥兄弟的克隆,当我运行pygame.display.flip()或pygame.display.update()时,我的fps被限制在20 fps左右。
即使是一个空的主循环,只有一个clock.tick(60)和update(),没有任何绘制,结果也是一样。
当我删除pygame.display.update(),我得到60个fps与我的游戏运行所有的计算。
import pygame as pg
class Main():
def __init__(self):
pg.init()
self.screen = pg.display.set_mode((1000, 1000))
self.clock = pg.time.Clock()
def main_loop(self):
while True:
self.clock.tick(60)
print(self.clock.get_fps())
pg.display.flip()
main = Main()
if __name__ == '__main__':
main.main_loop()屏幕尺寸越大,帧率就越低。
发布于 2021-02-27 10:44:52
屏幕尺寸越大,帧率就越低。
当然,如果你没有超级快的计算机,可以考虑缩小窗口的大小。
而且,我认为1000x1000对于大多数屏幕来说都很大.因此,尝试缩小游戏的大小,例如900x500或640x480,然后使用pygame.SCALED标记加上pygame.FULLSCREEN,将游戏窗口调整到当前屏幕大小。
我在用..。游戏1.9.3.
考虑一下更新您的pygame版本--当我将pygame 1.9.6更新到pygame 2.0.1时,我的框架就少了一倍。(+ pygame 2.0.0和最新版本修复了大量的bug,并增加了大量新的可能性)
但是如果你想要高分辨率和高速度,我认为pygame是不够的。如果您想要创建游戏一般,考虑使用Unity例如。
https://stackoverflow.com/questions/51115153
复制相似问题