如果我想在 pygame 中根据按键输入移动 Sprite ,是否可以编写代码,以便如果我按住某个键, Sprite 将继续朝那个方向移动,直到我松开按键?我已经试过了,要么程序崩溃了,要么我必须反复点击按键才能将 Sprite 移动到预期的方向。
最佳答案
OP 需要按键状态轮询,而不是 KEYDOWN
事件。
此示例显示同时使用键事件和键轮询。您将一个用于“按下按键”,另一个用于“按住时”。
import pygame
from pygame.locals import *
done = False
player.pos = Rect(0,0,10,10)
while not done:
for event in pygame.event.get():
# any other key event input
if event.type == QUIT:
done = True
elif event.type == KEYDOWN:
if event.key == K_ESC:
done = True
# get key current state
keys = pygame.key.get_pressed()
if keys[K_LEFT]:
player.pos.left -= 10
if keys[K_RIGHT]:
player.pos.left += 10
if keys[K_UP]:
player.pos.top -= 10
if keys[K_DOWN]:
player.pos.left += 10
if keys[K_SPACE]:
print 'firing gun'
关于python - 恒定的键输入可以不断地移动 Sprite 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13205629/