-6
我正在製作遊戲並使用pygame。我的目標是用箭頭鍵移動一個矩形。這如何實現?Pygame事件處理重要事件
我正在製作遊戲並使用pygame。我的目標是用箭頭鍵移動一個矩形。這如何實現?Pygame事件處理重要事件
這個答案部分複製自programarcadegames.com,如果你想用pygame做一個遊戲,你應該看看課程。
[假設你已經有一個主循環,如果沒有,從頭開始上述過程:] 主循環外,設置初始位置和移動速度兩者x和y位置。
x_speed = 0
y_speed = 0
x_pos = 10
y_pos = 10
現在,你需要(或者更確切地說,應該已經有)事件循環主循環中來處理可能可能發生的所有事件的Pygame。請注意,這應該是您的主循環中首先發生的事情。
在事件循環中,檢查KEYDOWN事件(擊鍵)和KEYUP事件(keyrelease)。
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
# As long as an arrow key is held down, the respective speed is set to 3 (or minus 3)
if event.key == pygame.K_LEFT:
x_speed = -3
elif event.key == pygame.K_RIGHT:
x_speed = 3
elif event.key == pygame.K_UP:
y_speed = -3
elif event.key == pygame.K_DOWN:
y_speed = 3
elif event.type == pygame.KEYUP:
# As soon as an arrow key is released, reset the respective speed to 0
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_speed = 0
elif event.key == pygame.K_UP or event.key == pygame.K_DOWN:
y_speed = 0
現在調整添加速度到您的位置。如果沒有按下箭頭鍵,則事件回覆中的速度設置爲0,所以您的位置不會受到影響。然後用剛剛修改的位置繪製矩形。
x_pos = x_pos + x_speed
y_pos = y_pos + y_speed
pygame.draw.rect(yourdisplay, yourcolor, (x_pos, y_pos, yourwidth, yourheight))
歡迎來到SO。請閱讀[如何問](https://stackoverflow.com/help/how-to-ask) –