Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python无法识别按键';s';pygame.key.get_pressed()';模块_Python_Pygame - Fatal编程技术网

python无法识别按键';s';pygame.key.get_pressed()';模块

python无法识别按键';s';pygame.key.get_pressed()';模块,python,pygame,Python,Pygame,我试图创建一个函数,如果按下一个键,变量就会改变。这将被放入一个在屏幕上移动精灵的类中。释放钥匙时,while循环中断。然而,什么也没有发生。while循环正在运行,我没有收到任何错误。有人知道为什么会这样吗?我不确定是否正确使用了函数pygame.key.get_pressed() import pygame from pygame.locals import * def move(): for event in pygame.event.get(): if e

我试图创建一个函数,如果按下一个键,变量就会改变。这将被放入一个在屏幕上移动精灵的类中。释放钥匙时,while循环中断。然而,什么也没有发生。while循环正在运行,我没有收到任何错误。有人知道为什么会这样吗?我不确定是否正确使用了函数
pygame.key.get_pressed()

import pygame
from pygame.locals import *
def move():
    for event in pygame.event.get():
            if event.type == QUIT:
                pygame.QUIT()
                sys.exit()
    while True:
        pressed = pygame.key.get_pressed()
        if pressed[pygame.K_UP]:
            print("something happens")
        #runs this, but when up arrow key is pressed does nothing
        if event.type == KEYUP:
            False

screen = pygame.display.set_mode((512,384))
move()          
pygame.display.update()

您可以这样做:

def move():
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.QUIT()
            sys.exit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                print("up pressed")

            # etc.

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_UP:
                print("up released")

            # etc.
有关更多按键名称,您可以转到
get_pressed()
返回列表,其中包含有关按键的信息,但此列表由
pygame.event.get()
和其他事件函数更新,因此您必须始终执行
pygame.event.get()
。这就是为什么我们在
while循环中这样做的原因

import pygame   

pygame.init()
screen = pygame.display.set_mode((512,384))

while True:

    # get events and (somewhere in background) update list
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # get current list.
    pressed = pygame.key.get_pressed()
    if pressed[pygame.K_UP]:
        print("UP")

get\u pressed()
如果不执行
pygame.event.get()
,则无法工作-但您只执行一次
pygame.event.get()
。这似乎不会产生不同的结果-仍然没有打印语句。然而,我没有得到一个错误?我已经删除了我的while循环,它现在可以工作了。非常感谢。