我计划在 Pygame 中编写代码,但我刚刚开始了解基础知识,发现执行代码非常慢。当我按下一个键时,它需要一段时间才能在终端中打印出来(似乎没有任何模式)。
我正在运行 Python 2.6,遇到这个问题后我降级了。通过进一步测试,我发现整个系统变慢了。有没有人遇到过这个问题或得到了解决方案以使其运行得更快或/并防止系统变慢?
操作系统 - Ubuntu 硬件 - Macbook Pro
import pygame
import pygame.locals
pygame.mixer.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("bla")
background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill(pygame.Color("green"))
screen.blit(background, (0, 0))
looping = True
while looping:
for event in pygame.event.get():
if event.type == pygame.QUIT:
looping = False
elif event.type == pygame.KEYDOWN:
keyName = pygame.key.name(event.key)
print "key pressed:", keyName
if event.key == pygame.K_SPACE:
print "Loading Music"
pygame.mixer.music.load("born.mp3")
elif event.key == pygame.K_ESCAPE:
looping = False
pygame.display.flip()
如果我可以提供任何进一步的信息,我很乐意提供帮助。
最佳答案
pyGame 基于内部基于线程的 SDL。
当你有线程时,打印消息基本上是一个禁忌。由于调度程序切片(在 SDL 中很大),打印消息经常会延迟。这并不是说 pygame 很慢(在某些情况下是这样,但在这种情况下不是),只是打印语句在一个单独的事件线程中。
尝试做 this在 pygame 中,它会运行得很好。
关于python - 为什么我的基本 PyGame 模块这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6156485/