Class Python+Pygame+PygButton检测

Class Python+Pygame+PygButton检测,class,loops,pygame,python-3.3,Class,Loops,Pygame,Python 3.3,我将Python3.3与Pygame和PygButton low rep一起使用,不允许有超过两个链接 目前我的文件是[int.py]和[scene.py] 我们的想法是在int.py中创建一个尽可能小的主循环。代码中有一个注释掉的示例,它是mainloop上的start_屏幕按钮。它可以工作,但是每一个新屏幕的主循环都会膨胀 所以我创建了一个场景类来应用背景、文本和按钮。它能工作,但我能让按钮工作。例如,bquit按钮不会像以前插入主循环时那样退出屏幕 我试图在场景中创建一个场景循环,以运行特

我将Python3.3与Pygame和PygButton low rep一起使用,不允许有超过两个链接 目前我的文件是[int.py]和[scene.py]

我们的想法是在int.py中创建一个尽可能小的主循环。代码中有一个注释掉的示例,它是mainloop上的start_屏幕按钮。它可以工作,但是每一个新屏幕的主循环都会膨胀

所以我创建了一个场景类来应用背景、文本和按钮。它能工作,但我能让按钮工作。例如,bquit按钮不会像以前插入主循环时那样退出屏幕

我试图在场景中创建一个场景循环,以运行特定场景必须提供的所有内容。点击一个按钮,它将改变场景,这样,开始一个新的场景循环

在场景类实例化之后,我似乎无法添加特定的方法,因此我创建了一个Scene_Start类来处理特定的方法,如Scene_循环及其按钮,因为背景很容易通过Scene类放置

我只是被卡住了,无法找到一种方法来解决这个问题,而不是放弃一切,重新开始

帮忙

tl;博士: 1.PygButton在mainloop外不工作 2.我如何创建一个场景_循环来替换该场景的主循环,取消主循环它只负责启动应用程序和更改场景


谢谢。

问题解决了。回答我自己的问题,以便对他人有所帮助。 每个类都有一个sceneloop方法,该方法运行并替换主循环。这允许在不影响其他组件的情况下,将任何问题解除悬浮并隔离到场景中

主循环:

while True:
    for event in pg.event.get():   
        if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
            pg.quit()
            sys.exit()
    scene.startscreen.draw()
    scene.startscreen.sceneloop()
    pg.display.update()
一个场景操作的例子。这是Scene_StartScene类中的一个方法,如上面主循环中所示,实例化为startscreen

def sceneloop(self):
    while self.scene_loop == True:
        for event in pg.event.get():
            if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
                pg.quit()
                sys.exit()
            if 'click' in self.bcreate.handleEvent(event): #CREATE
                startcreate.draw()
                startcreate.sceneloop()
            if 'click' in self.bstart.handleEvent(event): #START
                pg.quit()
                sys.exit()
            if 'click' in self.bload.handleEvent(event): #LOAD
                startload.draw()
                startload.sceneloop()
            if 'click' in self.boptions.handleEvent(event): #OPTIONS
                startoptions.draw()
                startoptions.sceneloop()
            if 'click' in self.bquit.handleEvent(event): #QUIT
                pg.quit()
                sys.exit()
        self.update()

为什么不在这里粘贴代码?在scene.py中没有任何退出pygame的代码