import pygame
from pygame.locals import *
...
...
while True:
#comment
for event in pygame.event.get():
if event.type == KEYDOWN:
key_pressed = pygame.key.get_pressed()
#do something
我用print语句替换#comment
,发现for loop
根本没有执行,即print语句无限运行。
我所期待的是,get_pressed()
会在按下按键后立即按下按键,但它不会发生。
上述代码有什么问题,我该如何纠正?
编辑:添加指向python脚本文件的链接 python script
答案 0 :(得分:3)
pygame.event.get()
获取已在事件队列中注册的所有事件,并将它们保持在发生的顺序中。 pygame.key.get_pressed()
只有那一刻按下的键。这意味着当你的游戏试图访问它们时必须按下它们。
您不需要同时使用这两种方法。相反,只需循环遍历事件,并在密钥匹配您想要的密钥时执行某些操作。常见的是对光标键作出反应,如下所示:
import pygame
from pygame.locals import *
pygame.init()
...
...
while True:
#comment
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == pygame.K_DOWN:
print('Down was pressed')
if event.key == pygame.K_UP:
print('Up was pressed')
if event.key == pygame.K_RIGHT:
print('Right was pressed')
if event.key == pygame.K_LEFT:
print('Left was pressed')