3

这个程序无限循环。什么也没做。不会接受输入或打印任何内容。想法?

import pygame

pygame.init()

running = 1
while(running):
   for event in pygame.event.get():
      if event.type == pygame.KEYDOWN:
         if event.key == pygame.K_ESCAPE:
            print "hi"
            running = 0
4

4 回答 4

2

尝试以下操作:

import pygame, sys

pygame.init()
pygame.mixer.init(22050, -16, 2, 3072)
pygame.mixer.music.load("Kundara_Lake-of-Dust-320.mp3")
pygame.mixer.music.play(1, 0.0)

running = 1
while(running):
   for event in pygame.event.get():
      if event.type == pygame.KEYDOWN:
         if event.key == pygame.K_ESCAPE:
             pygame.mixer.music.stop()
             pygame.quit()
             running = 0

来自http://www.pygame.org/docs/ref/pygame.html

pygame.quit

取消初始化之前已初始化的所有 pygame 模块。当 Python 解释器关闭时,无论如何都会调用此方法,因此您的程序不需要它,除非它想终止其 pygame 资源并继续。多次调用此函数是安全的:重复调用无效。

请注意, pygame.quit 不会退出您的程序。考虑让你的程序以与普通 python 程序相同的方式结束。

pygame.quit()由于while(1). _

于 2012-09-18T19:50:50.593 回答
2

您的脚本的问题仅仅是没有可以捕获事件的窗口。

您必须先创建并初始化一个窗口pygame.display.set_mode

import pygame

pygame.init()

# create a window that will capture the events
pygame.display.set_mode((200, 200))

running = 1
while(running):
   for event in pygame.event.get():
      if event.type == pygame.KEYDOWN:
         if event.key == pygame.K_ESCAPE:
            print "hi"
            running = 0
于 2012-09-19T06:44:50.857 回答
0

您需要更新屏幕。试试看

screen = pygame.display.set_mode((640,360),0,32)

在循环中,写

pygame.dispay.flip()

要完全关闭窗口,您可以使用

sys.exit()

只需确保在您的导入中包含 sys

于 2012-09-18T20:23:19.570 回答
0

pygame 无法识别术语“输入”或“打印”。如果是这样就简单多了!!相反,要将文本显示到屏幕上,您必须使用 'drawText('message',font,surface,(xpos,ypos) 将您自己的文本放入 'message',将您自己的表面名称放入 'surface' 以及 x 和 y 'xpos' 和 'ypos' 中的坐标。

于 2013-09-03T13:13:24.193 回答