【发布时间】:2019-06-13 01:14:19
【问题描述】:
我正在尝试编写一个简单的游戏,该游戏有一个玩家对象和一个使用循环创建它的楼层。我不知道为什么它的丢帧这么快。我有时钟以 60 fps 打勾,但很快降至 15 fps。提前致谢!
main.py
black = (0, 0, 0)
blue = (50, 60, 200)
white = (255, 255, 255)
font = pygame.font.Font(None, 30)
window = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Platformer")
gravity = -0.5
player = Player(400, 0)
level1 = [
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
]
for y in range(0, len(level1)):
for x in range(0, len(level1[y])):
if level1[y][x] == 1:
blockList.append(Block(x*32, y*32))
window.fill(blue)
for block in blockList:
block.render(window)
player.x += moveX
player.update(gravity, blockList)
player.render(window)
clock.tick(60)
for x in range(0, len(level1[y])):
if level1[y][x] == 1:
blockList.append(Block(x*32, y*32))``` Im pretty sure thats where the error is...
【问题讨论】:
-
您是否在每帧都对
level1进行此双循环?也许这可以在进入主循环之前移动到初始化部分。 -
我该怎么做?对不起,我是 python 新手
-
您需要编辑您的问题以包含整个代码 - 或至少包含主循环。如果没有大部分代码,就不可能提出更改建议。
标签: python macos pygame frame-rate