【问题标题】:python menu Game menu game... etcpython menu 游戏菜单 游戏...等
【发布时间】:2016-01-16 06:34:49
【问题描述】:

我正在使用 pygame 和其他一些库在 python 中制作游戏。 I have the main menu as one python file, and when a player is selected, it starts the game file.如果您在玩游戏时选择返回菜单,它会再次启动菜单。但是,从新菜单中,我无法再启动/打开游戏文件了,它根本没有做任何事情。 (每次打开文件后,我都会关闭前一个文件)

例如:

Menu-->playerSelect-->gameStartUp-->Menu-->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

问题在于使用导入命令。 exec(open("HappyBird.py").read())

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

Repeating Import Module - Python / Pygame

^我怎么想出来的链接。

谢谢。

【问题讨论】:

  • 如果您正在寻找的只是发泄的地方(这不是 SO 的主题),那么您当前的问题有足够的信息,但是,如果您想修复您的程序,不是吗?认为您应该显示一些不起作用的代码?如果你想让他修理它,这有点像把你的车带到修理工那里。
  • 不确定在哪里添加代码,但谢谢我这样做
  • 您可能想take the Tour 并阅读有关how to ask a good question 的信息。
  • 这样的?
  • 想通了。在此页面下stackoverflow.com/questions/23459281/…

标签: python file import pygame


【解决方案1】:

使用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()

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 2015-12-16
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多