Python和Pygame的灵感和最佳实践

时间:2014-04-15 09:10:55

标签: python user-interface menu pygame

很抱歉这个问题不是很具体,但我不知道还能在哪里问。

我有一个Raspberry Pi,我将尝试在汽车电脑项目中使用。我有提示使用Pygame编写接口。

我对python或pygame并不熟悉,但我在PHP,HTML和C#以及VB中对winforms有相当丰富的经验。

在这种情况下,我会在右边有一个菜单,让我们说5"标签"。这样做时我怎么想?我应该考虑PHP / HTML并为每个标签页都有一个文件,然后在这里加载标题和背景和内容,以及一些如何链接到每个* .py文件(如果这甚至可能)?我应该多考虑JS和ajax使用曲面(" div")来显示我的页面,具体取决于所选的菜单?

我花了一个晚上玩,我想我必须做的是这样的事情:

//Set up the layout
//Add a surface for Tab 1 (tab1Layout.py)
//Add a surface for Tab 2 (tab2Layout.py) - set invisible
//Add a surface for Tab 3 (tab3Layout.py) - set invisible
//Add a surface for Tab 4 (tab4Layout.py) - set invisible
//Add a surface for Tab 5 (tab5Layout.py) - set invisible

//Add the menu to the right (menu.py)

//Start the pygame loop
//Listen for events in the menu (menuEvents.py)
//Listen for events in tab 1 (tab1Events.py)
//Listen for events in tab 2 (tab2Events.py)
//Listen for events in tab 3 (tab3Events.py)
//Listen for events in tab 4 (tab4Events.py)
//Listen for events in tab 5 (tab5Events.py)

我在这里走在正确的轨道上吗?

你们是否知道有任何好的教程或其他图书馆来做这种事情?我不想加载X或类似的东西。

教程的任何好的提示或知道我可以为此研究代码的任何类似项目吗?

1 个答案:

答案 0 :(得分:1)

所以,有点难以确切地知道你想要什么。但是我想在这里支持简单性,如果你自己制作这么多文件,你会感到困惑,并且有很多冗余的代码。

从我的游戏制作角度来看,我的屏幕都是单一类的方法。有一些实例变量,如屏幕,但每个方法都包含主要的pygame循环,即

while True:
    for event in pygame.event.get():
        #whatever
        pass

按下按钮可以转到班级中的单独方法。 我建议为每个选项卡按钮创建一个类,或者为整个选项卡按钮创建一个类,这可以更新,绘制到屏幕并在每个选项卡的所有单独方法中使用

这种方式与php& html是缺乏预定义的结构,因为你必须从头开始做所有这些。我在我的网站上提供了一些代码片段,您可以使用这些代码片段来制作按钮等,如果这样做有帮助的话。这是一个link

此外,如果您选择单独的文件方法,python的导入工作非常直观,您可以使用以下命令从文件tabLayout3.py导入一个类(比如Layout3):

from tabLayout3 import Layout3

(如果tabLayout3.py的路径在我的python路径中)