很抱歉在这个问题上没有很具体,但我不知道还能问哪里。
我有一个树莓派,我将尝试在一个汽车电脑项目中使用。我得到了使用Pygame编写界面的提示。
我对python或pygame不是很熟悉,但我在PHP、HTML、C#和VB方面有着丰富的经验。
在这种情况下,我会在右边有一个菜单,比如说有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或类似的东西。
有什么好的教程技巧,或者知道任何类似的项目,我可以在那里学习代码吗?
所以,很难确切地知道你想要什么。然而,我想在这里提倡简单性,如果你自己制作了这么多文件,你会感到困惑,并且有很多多余的代码。
从我个人游戏制作的角度来看,我的屏幕都是一个类的方法。有一些像屏幕一样的实例变量,但每个方法都包含主要的pygame循环,即
while True:
for event in pygame.event.get():
#whatever
pass
按下按钮可以转到类中的一个单独方法。我建议为每个选项卡按钮创建一个类,或者为整个选项卡按钮集创建一个类别,这可以更新,绘制到屏幕上,并用于每个选项卡的所有单独方法
这与php&html缺少预定义的结构,因为您必须从头开始做所有这些。我的网站上有一些代码片段,如果有帮助的话,你可以用来制作按钮等。这是它的链接。
此外,如果你选择单独的文件方法,python的导入非常直观,你可以从你的文件选项卡Layout3.py导入一个类(比如Layout3),只需使用:
from tabLayout3 import Layout3
(如果tabLayout3.py的路径在我的python路径中)