如何将变量放入 pygame 键检测器?
How to put a variable into pygame key detector?
我正在制作一个等待用户按键的函数。有没有一种简单的方法可以将变量设置为我想要按下的键,然后让计算机等待该键?
wait_for_key("SPACE")
上面是我调用的函数
def wait_for_key(key):
pressed=0
while pressed==0:
keys=pygame.key.get_pressed()
if keys[pygame.K_key]:
pressed=1
但是这里,电脑无法识别K_key。我尝试使用括号,甚至 .format 方法,但都没有用。
您可以使用 getattr
和字符串格式来执行此操作:
key = "SPACE"
>>> getattr(pygame, f"K_{key}")
32
如果不处理循环中的事件,pygame.event.get()
将不起作用。见 pygame.event.get()
respectively pygame.event.pump()
:
For each frame of your game, you will need to make some sort of call to the event queue. This ensures your program can internally interact with the rest of the operating system.
def wait_for_key(key):
pressed=0
while pressed==0:
pygame.event.pump()
# [...]
如果你想等待 kor SPACE 你必须将密钥 pygame.K_SPACE
传递给 wait_for_key
(见 pygame.key
).测试参数 key
:
的状态
wait_for_key(pygame.K_SPACE)
def wait_for_key(key):
pressed=0
while pressed==0:
pygame.event.pump()
keys=pygame.key.get_pressed()
if keys[key]:
pressed=1
但是,如果您只想知道某个键是否被按下,您可以使用 KEYDOWN
事件(参见 pygame.event
):
def wait_for_key(key):
pressed=0
while pressed==0:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == key:
pressed = 1
pygame.key.name()
returns 密钥标识符的名称。如果要将键的名称传递给函数 wait_for_key
:
,请使用它
wait_for_key("space")
def wait_for_key(key_name):
pressed=0
while pressed==0:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if pygame.key.name(event.key) == key_name:
pressed = 1
我正在制作一个等待用户按键的函数。有没有一种简单的方法可以将变量设置为我想要按下的键,然后让计算机等待该键?
wait_for_key("SPACE")
上面是我调用的函数
def wait_for_key(key):
pressed=0
while pressed==0:
keys=pygame.key.get_pressed()
if keys[pygame.K_key]:
pressed=1
但是这里,电脑无法识别K_key。我尝试使用括号,甚至 .format 方法,但都没有用。
您可以使用 getattr
和字符串格式来执行此操作:
key = "SPACE"
>>> getattr(pygame, f"K_{key}")
32
pygame.event.get()
将不起作用。见 pygame.event.get()
respectively pygame.event.pump()
:
For each frame of your game, you will need to make some sort of call to the event queue. This ensures your program can internally interact with the rest of the operating system.
def wait_for_key(key):
pressed=0
while pressed==0:
pygame.event.pump()
# [...]
如果你想等待 kor SPACE 你必须将密钥 pygame.K_SPACE
传递给 wait_for_key
(见 pygame.key
).测试参数 key
:
wait_for_key(pygame.K_SPACE)
def wait_for_key(key):
pressed=0
while pressed==0:
pygame.event.pump()
keys=pygame.key.get_pressed()
if keys[key]:
pressed=1
但是,如果您只想知道某个键是否被按下,您可以使用 KEYDOWN
事件(参见 pygame.event
):
def wait_for_key(key):
pressed=0
while pressed==0:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == key:
pressed = 1
pygame.key.name()
returns 密钥标识符的名称。如果要将键的名称传递给函数 wait_for_key
:
wait_for_key("space")
def wait_for_key(key_name):
pressed=0
while pressed==0:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if pygame.key.name(event.key) == key_name:
pressed = 1