[英]Can constant key input move a sprite constantly?
如果我想根據pygame中的鍵輸入來移動精靈,無論如何都要編寫代碼,因此如果我按住一個鍵,則精靈會一直朝那個方向移動,直到釋放鍵為止? 我已經嘗試過了,或者程序崩潰了,或者我不得不反復輕擊按鍵以將精靈朝預期的方向移動。
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'
作為概述,
KEYDOWN
事件。 KEYUP
有與您的密鑰相匹配的KEYUP
事件。 閱讀有關如何實現此目的的文檔 。
通常在更新方法中使用具有移動功能的函數,如下所示:
this.pos_x = direction * speed * delta
現在,在KEYDOWN事件中,將方向設置為1或-1,在KEYUP事件中,將方向設置為0。這樣,您就可以保持恆定的運動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.