使用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时,我可以看到小骑士和灌木丛,但按键时没有任何东西。
感谢您提前阅读(如果您愿意,请回答)。
答案 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