2013-04-06 30 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

相關問題