所以,我一直在PyGame中从事一个项目。为了测试货币系统,我决定按键时增加您的存款。我尝试过将if语句移出游戏循环。这是我的代码:
gameRun = True
while gameRun:
for event in pygame.event.get():
if event.key == pygame.K_p:
print("This Should Work")
currency.balance.amount += 1
pygame.display.update()
我还有其他几行代码,但是我相信这些行有问题。非常感谢!
答案 0 :(得分:1)
是否有原因导致event.key在我的代码中途无法正常工作?
我想您有多个事件循环,您的代码中分别存在对pygame.event.get()
的调用。
注意pygame.event.get()
从队列中删除事件。如果您有多个事件循环,那么只有一个随机循环会获取事件,其他所有循环都是空手。这会导致您错过事件。
在主应用程序循环中一次获取事件列表,并在多个事件循环中使用相同的事件列表。例如:
gameRun = True
while gameRun:
events = pygame.event.get()
for event in events:
if event.key == pygame.K_p:
print("This Should Work")
currency.balance.amount += 1
pygame.display.update()
# [...]
foo(event)
# [...]
for event in events:
# [...]
def foo(events):
for event in events:
# [...]