NameError:未定义名称“KEYDOWN”

时间:2013-07-09 19:20:04

标签: python python-2.7 pygame

我是使用pygame编程的新手,我已经制作了这段代码:

import sys, pygame
pygame.init()

size = width, height = 800, 600
speed = [2, 2]
black = 1, 1, 1

screen = pygame.display.set_mode(size)

ball = pygame.image.load("ball.bmp")
ballrect = ball.get_rect()
player1 = pygame.image.load("player1.png")
player1rect = player1.get_rect()

mod_x = mod_y = 0

while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT: 
            sys.exit()
        elif event.type == KEYDOWN:
            if event.key == K_W:
                movex = 2
            if event.key == K_S:
                movex = -2

    ballrect = ballrect.move(speed)
    if ballrect.left < 0 or ballrect.right > width:
        speed[0] = -speed[0]
    if ballrect.top < 0 or ballrect.bottom > height:
        speed[1] = -speed[1]

    screen.fill(black)
    screen.blit(ball, ballrect)
    screen.blit(player1, player1rect)
    pygame.display.flip()

但是当我试图使用它时它只是说:

      File "C:\Users\User\Documents\Pong\pong.py", line 22, in <module>
    elif event.type == KEYDOWN:
NameError: name 'KEYDOWN' is not defined
             ^
SyntaxError: invalid syntax

所以请帮助我,我非常需要它。我需要快速回答。

3 个答案:

答案 0 :(得分:2)

您的代码中未定义

KEYDOWN。您可以将其添加到开头:

from pygame.locals import *

或者你可以这样做:

elif event.type == pygame.KEYDOWN

答案 1 :(得分:0)

使用pygame库时使用此命令

...
elif event.type == pygame.KEYDOWN
...

答案 2 :(得分:0)

只需更改此部分,它就可以工作:)

elif event.type ==键降:更改为:elif event.type == pygame.KEYDOWN: