在pygame中是否可以在pygame.event.get()中使用“for event:”在同一个循环中多次,或者你只需要使用一次?我正在学习pygame,我决定定义两个检查事件的函数,但是当一个函数被调用时,另一个函数不起作用。请记住,我是一个菜鸟。这显然不是实际的代码,但它是我正在做的事情的主旨。
import pygame
class someclass:
def __init__(self):
some declaration
def somefunction(self):
for event in pygame.event.get():
if event.type == someevent:
some code
def mainloop(self):
someinstance = somesubclass()
while True:
someinstance.somefunction2()
self.somefunction()
class somesubclass:
def __init__(self):
some declaration
def somefunction2(self):
for event in pygame.event.get():
if event.type == someevent
somecode
maininstance = someclass()
maininstance.mainloop()
某些功能无法执行
答案 0 :(得分:0)
您的问题出在事件系统中。
如果你得到了事件,那么事件就会被破坏,所以你无法再次获得它 - 这是正常的。
您获得somefunction2
中的所有活动,而somefunction
无关。
答案 1 :(得分:0)
如果您希望在应用程序的许多部分检查事件,尽管不可取 - 因为当应用程序变大时,您将不知道某个按钮的作用。
这就是:
import pygame
class MainClass:
def __init__(self):
self.someinstance = SomeSubclass()
def check_events(self):
for event in pygame.event.get():
self.someinstance.somefunction2(event)
if event.type == someevent:
some code
def mainloop(self):
someinstance = somesubclass()
while True:
self.somefunction()
class SomeSubclass:
def __init__(self):
some declaration
def somefunction2(self,event):
if event.type == someevent
somecode
目标是将事件传播到每个对象,它将是决定,做什么的对象。