2013-11-10 3 views
1
import pygame, sys, pygame.mixer 

pygame.init() 

size = width,height = 1256,640 
screen = pygame.display.set_mode(size) 
player_x = 0 
player_y = 0 
movex = 0 

maintheme = pygame.mixer.Sound("music/mainthemes.ogg") 
maintheme.play() 

player_w = pygame.image.load("characters/player/character_w.png").convert_alpha() 
player_a = pygame.image.load("characters/player/character_a.png").convert_alpha() 
player_s = pygame.image.load("characters/player/character_s.png").convert_alpha() 
player_d = pygame.image.load("characters/player/character_d.png").convert_alpha() 

background1 = pygame.image.load("maps/background1.png").convert_alpha() 

while True: 

    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit() 
      sys.exit() 
     if event.type==KEYDOWN: 
      if event.key==K_a: 
       movex=-1 

     screen.fill((0,0,0)) 
     screen.blit(background1,(0,0)) 
     screen.blit(player_s,(player_x,player_y)) 

     pygame.display.update() 

Ошибка заключается в следующем: Файл "/home/fenton/Desktop/main.py", строка 27, в если Event.type == KeyDown: NameError: название 'KeyDown' не определен [Законченный в 4.9s]Pygame KeyDown ошибка имя

ответ

4

Вам нужно сделать:

if event.type==pygame.KEYDOWN: 

в противном случае, Python не имеет понятия, где KEYDOWN определена.


Кроме того, вы можете изменить его на:

elif event.type==pygame.KEYDOWN: 

, потому что нет никакого способа event.type может быть pygame.QUITиpygame.KEYDOWN.

2
from pygame.locals import * 

Добавить эту линию, и вы в порядке.

Однако, хотя это работает, это плохая практика, и решение iCodez должно быть одобрено и использовано вместо этого.

+3

Обычно это считается плохой практикой. Он сбрасывает целую кучу имен в глобальном пространстве имен, которые можно легко перезаписать. – iCodez

+1

Глупо меня, я обычно делаю эту линию в начале Houssni! – Pipyaddict

+0

Я повторю то, что сказал iCodez, чтобы было ясно, что вы не должны этого делать. Это плохая практика. Не делай этого. – kevintodisco

Смежные вопросы