我目前正在研究Super Mario Bros克隆,当我运行display.flip()或diplay.update()时,我的fps上限约为20fps。
即使只有一个clock.tick(60)和update()却没有绘制任何内容的空主循环也会产生相同的结果。
当我删除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()
较大的屏幕尺寸会导致较低的帧速率。
答案 0 :(得分:1)
较大的屏幕尺寸会导致较低的帧率。
当然,如果您没有超快的计算机,请考虑减小窗口大小。
另外,我认为 1000x1000 对于大多数屏幕来说已经相当大了...所以尝试减小您的游戏的尺寸,例如 900x500 或 640x480,然后使用标签 pygame.SCALED
和 {{ 1}} 将游戏窗口调整为您当前的屏幕大小。
我正在使用 [...] pygame 1.9.3。
考虑更新您的 pygame.FULLSCREEN
版本 - 当我将 pygame
更新为 pygame 1.9.6
时,我的帧率几乎翻了一番。 (+ pygame 2.0.1
和最新版本修复了大量错误,并添加了大量新可能性)
但如果您想要高分辨率和良好的速度,我认为 pygame 2.0.0
是不够的。如果您想创建一般游戏,请考虑使用 Unity
例如。