所以我正在用python开发游戏。这是我的代码:
bif="main_background.jpg"
pif="player_head.png"
import pygame, sys
from pygame.locals import *
pygame.init()
screen=pygame.display.set_mode((900,600),0,32)
background=pygame.image.load(bif).convert()
player_sprite=pygame.image.load(pif).convert_alpha()
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_RIGHT:
movex=+1
if event.type==K_LEFT:
movex=-1
if event.type==K_UP:
movey=-1
if event.type==K_DOWN:
movey=+1
if event.type==KEYUP:
if event.key==K_RIGHT:
movex=0
if event.type==K_LEFT:
movex=0
if event.type==K_UP:
movey=0
if event.type==K_DOWN:
movey=0
x+=movex
y+=movey
screen.blit(background, (0,0))
screen.blit(player_sprite, (x,y))
pygame.display.update()
但问题是只有第一个event.key工作(K_RIGHT)
当我按下右箭头键时,精灵只会移动。
我也尝试用elif取代第二,第三和第四个event.key,但它也没有用。
答案 0 :(得分:4)
您使用event.type
代替event.key
用于所有其他密钥,K_RIGHT
除外(有效)。这解释了为什么其他键不起作用。另外,你应该写:
movex += 1
或
movey -=1
以使精灵更改位置。这将增加和减少精灵的位置。写movex += 1
是movex = movex + 1
的简写。
答案 1 :(得分:2)
您检查event.key==K_RIGHT
但是对于其他方向,您执行event.type==K_LEFT
等。