python菜单游戏菜单游戏......等

时间:2016-01-16 06:34:50

标签: python file import pygame

我正在使用pygame和其他一些库在python中制作游戏。我将主菜单作为一个python文件,当选择一个播放器时,它启动游戏文件。如果您选择在玩游戏时返回菜单,则会再次启动菜单。然而,从新菜单我不能再开始/打开游戏文件它根本不做任何事情。 (每次打开文件后我关闭前一个文件)

例如:

菜单 - > playerSelect - > gameStartUp - >菜单 - > playerSelect - >分隔/碰撞

所以实际代码是第一个文件,即菜单名称“FlappyBirdMAIN”,“HappyBrid”是第二个游戏文件的名称。

if startGui == 2:
    screen.blit(background, [0, 0])
    import HappyBird

    done=True
    pygame.quit()

对于第二个文件“happyBird”我打开菜单连接到按下“m”键:

            if event.key == K_m:
                pygame.mixer.fadeout(1)
                import FlappybirdMAIN
                done=True

所以导入FlappyBirdMAIN然后done = True关闭“HappyBird”文件

我已经想通过制作相同文件的副本(“FlappyBirdMAIN”和“HappyBird”)然后让它们相互串联导入我可以让菜单出现然后再次下降(不止一次)但是当我将它链接回原始文件时,它会崩溃/中断,例如:

EX1:

FlappyBirdMAIN - > HappyBird - > FlappyBirdMAIN2 - > HappyBird2 - > FlappyBirdMAIN3 - > HappyBird3

EX2:

FlappyBirdMAIN - > HappyBird - > FlappyBirdMAIN2 - > HappyBird2 - > FlappyBirdMAIN3 - > HappyBird3 - > FlappyBirdMAIN

问题是使用import命令。 EXEC(开( “HappyBird.py”)。读())

使用import cuases python认为它已经打开,因为它是一个智能导入系统。 (或类似的东西)。

Repeating Import Module - Python / Pygame

^我想出来的链接。

感谢。

1 个答案:

答案 0 :(得分:0)

使用import启动菜单并不是一个好方法。

如果您有menu.py

print("hello world")

仅在首次导入game.py

时才有效
import menu

但你可以把它放在功能

def run_it():
    print("hello world")

然后你可以多次使用

import menu

menu.run_it()

# and again

menu.run_it()

# and again

menu.run_it()

如果您使用班级

class Menu():

   def update():
       pass

   def draw():
       pass

   def event_handler():
       pass

   def mainloop():
       print("hello world")

那么你也可以多次运行

menu = Menu()

menu.mainloop()

# and again

menu.mainloop()

# and again

menu.mainloop()