我已经def
完成了两个功能。我不想加入这些,因为我希望能够在不做其他事情的情况下做出我能做的事情。问题是我有两个for event in pygame.event.get()
s,每当我尝试一个接一个地使用时,第一个pygame.event.get()在调用后删除所有事件,所以我不能在第二个函数中使用其他事件。例如,在
def Func1():
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
#Do something
def Func2():
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
#Do something
如果我做了其中任何一项,那么第二种方法就不会起作用:
我做了一些实验,发现for event in pygame.event.get():
在调用之后摆脱了所有的活动,这就是我遇到问题的原因。任何人有任何想法如何绕过这个?谢谢,如果您需要更多信息,请告诉我。
答案 0 :(得分:2)
完成上述操作的最简洁方法(如果可能,取决于您需要做什么)将是这样的。您有一个事件循环,它将根据按下的键调用不同的函数。
def Func1():
print('key pressed')
def Func2():
print('mouse pressed')
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
Func1()
elif event.type == pygame.MOUSEBUTTONDOWN:
Func2()
如果每个函数必须有一个事件循环,请在帧的开头定义事件列表并将其传递给函数。
def Func1(events):
for event in events:
if event.type == pygame.KEYDOWN:
#Do something
def Func2(events):
for event in events:
if event.type == pygame.MOUSEBUTTONDOWN:
#Do something
pygame_events = pygame.event.get()
Func1(pygame_events)
Func2(pygame_events)