如何使用PyGame实现键条目?

时间:2017-12-03 21:21:46

标签: python pygame key

使用PyGame处理我在Python上的第一个游戏项目时,我无法获得任何关键条目。

我复制了一个我在互联网上创建的(工作)脚本,并尝试根据自己的口味修改它,这就是它的样子:

from pygame import *

knightpic = image.load('D:\\Game Dev\\Project 1 - Python\\knight01.png')

bushpic = image.load('D:\\Game Dev\\Project 1 - Python\\bush02.png')

done = False


kx = 500
ky = 400


bushx = 700
bushy = 600


init()
screen = display.set_mode((1000, 800))
display.set_caption('Protect the queen !')

while done == False:
    screen.fill(0)
    screen.blit(knightpic, (kx, ky))
    screen.blit(bushpic, (bushx, bushy))
    display.update()

    time.delay(1)


    keys = pygame.key.get_pressed()

    if keys[K_LEFT]:
        bushx += 1
    if keys[K_RIGHT]:
        bushx -= 1
    if keys[K_DOWN]:
        bushy += 1
    if keys[K_UP]:
        bushy -= 1

(对不起大代码,我想这是不必要的,但我不熟悉这里使用的大多数功能,所以它可能包含一个我看不到的问题。)

我自己做了最后一部分,并且想知道它是否适应其余部分。目标是使丛林相对于骑士移动。 当Ctrl + E时,我可以看到小骑士和灌木丛,但按键时没有任何东西。

感谢您提前阅读(如果您愿意,请回答)。

1 个答案:

答案 0 :(得分:0)

您必须每帧处理事件。您可以使用pygame.event.get()的事件循环,也可以每帧调用pygame.event.pump()

while not done:
    # Either use pygame.event.pump to clear the event queue ...
    # pygame.event.pump()

    # or use an event loop like this:
    for ev in pygame.event.get():
        # This allows you to press the 'X' to
        # quit the game and close the window.
        if ev.type == pygame.QUIT:
            done = True