在Python中创建互连菜单

时间:2013-11-21 07:50:33

标签: python pygame

所以我在教自己Python / Pygame,并开始我试图制作一个用户可以滚动的基本菜单,然后选择一个项目转到另一个菜单。我最初的想法是将菜单定义为菜单项的元组,每个项目都是要显示的文本和选择该项目引导您的位置的元组。所以,例如:

mainmenu = (("Go to Menu 1",menu1),("Go to Menu 2",menu2))
menu1 = (("Go to Menu 2",menu2),("Return to Main Menu",mainmenu))
menu2 = (("Go to Menu 1",menu1),("Return to Main Menu",mainmenu))

然后有一个像makeMenu(menu)这样的函数打印出一个给定的菜单,并允许用户滚动它。当用户进行选择时,再次调用makeMenu(menu),此时会传递与当前所选选项对应的菜单。

问题是Python不允许您根据尚未定义的其他菜单定义mainmenu。这是有道理的,但我想不出一种方法来创建一系列互连的菜单而不相互之间定义它们。我确信这是一个简单的解决方案,但对于我的生活,我无法弄明白。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

通常,对于菜单,我喜欢使用State Pattern。完全成熟的可能会因你当前的需求而过度杀伤 - 但它应该引导你朝着正确的方向前进。有关C的一个例子,特别是关于游戏状态,可以在gamedevgeek.com上找到。

这可能无法直接回答您的问题,但它应该会引导您获得更具可扩展性和更强大的解决方案。