2013-04-06 31 views
1

我正在看youbube上的新手教程http://www.youtube.com/watch?v=9YWzFcHMz78&feature=share&list=EC8E21BDD0981FDF66,我正在复制他的代码,但我的工作不正常。每当我按下下箭头键,整个程序就会冻结,不会让我放弃。我使用Python 3.3。请帮忙。这是我的代码。为什么我的python pygame代码不工作?

grey="grey.jpg" 
circle="circle.png" 

import pygame, sys 
from pygame.locals import* 

pygame.init() 
screen=pygame.display.set_mode((1278,990),0,32) 

background=pygame.image.load(grey).convert() 
pic=pygame.image.load(circle).convert() 

x,y=0,0 
movex,movey=0,0 

while True: 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      pygame.quit() 
      sys.exit() 
     if event.type==KEYDOWN: 
      if event.key==K_LEFT: 
       movex=-1 
      elif event.key==K_RIGHT: 
       movex=+1 
      elif event.key==K_UP: 
       movey=-1 
      elif event.key==K_DOWN: 
       movey=+1 
     if event.type==KEYUP: 
      if event.key==K_LEFT: 
       movex=0 
      elif event.key==K_RIGHT: 
       movex=0 
      elif event.key==K_UP: 
       movey=0 
      elif event.key==K_Down: 
       movey=0 
    x+=movex 
    y+=movey 

    screen.blit(background, (0,0)) 
    screen.blit(pic,(x,y)) 

    pygame.display.update() 
+0

37号线在你的代码,它应该是'K_DOWN'不'K_down'。 – 2014-02-02 23:43:20

回答

4

快速代码的运行:

$ python test1.py 
Traceback (most recent call last): 
    File "test1.py", line 37, in <module> 
    elif event.key==K_Down: 
NameError: name 'K_Down' is not defined 

当程序上的向下箭头推崩溃时显示错误。

崩溃是由于一个错字,当它需要“K_DOWN”时有“K_Down”。

更正代码:

grey="grey.jpg" 
circle="circle.png" 

import pygame, sys 
from pygame.locals import* 

pygame.init() 
screen=pygame.display.set_mode((1278,990),0,32) 

background=pygame.image.load(grey).convert() 
pic=pygame.image.load(circle).convert() 

x,y=0,0 
movex,movey=0,0 

while True: 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      pygame.quit() 
      sys.exit() 
     if event.type==KEYDOWN: 
      if event.key==K_LEFT: 
       movex=-1 
      elif event.key==K_RIGHT: 
       movex=+1 
      elif event.key==K_UP: 
       movey=-1 
      elif event.key==K_DOWN: 
       movey=+1 
     if event.type==KEYUP: 
      if event.key==K_LEFT: 
       movex=0 
      elif event.key==K_RIGHT: 
       movex=0 
      elif event.key==K_UP: 
       movey=0 
      elif event.key==K_DOWN: 
       movey=0 
    x+=movex 
    y+=movey 

    screen.blit(background, (0,0)) 
    screen.blit(pic,(x,y)) 

    pygame.display.update() 
+0

非常感谢!有效! – 2013-04-06 16:04:47

相关问题