use*_*990 1 python pygame sprite game-engine
如果我想根据pygame中的键输入移动一个精灵,那么无论如何都要编写代码,所以如果我按下一个键,精灵会继续向那个方向移动,直到我释放密钥?我试过这个,程序崩溃或者我必须反复点击键才能将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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3357 次 |
| 最近记录: |