我计划在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()
如果我能提供任何进一步的信息,我很乐意提供帮助。
答案 0 :(得分:3)
pyGame基于SDL,内部基于线程。
当你有线程时,打印消息基本上是禁止的。因为调度程序切片(SDL中很大)经常会因打印消息而延迟。它不是pygame很慢(在某些情况下,但不是在这个中),它只是print语句在一个单独的事件线程中。
尝试在pygame中执行this,它会运行得很好。