Python和Pygame的灵感与最佳实践
抱歉我在这个问题上没有说得很具体,但我不知道还可以问哪里。
我有一个树莓派,打算用它来做一个车载电脑项目。我听说可以用Pygame来写界面。
我对Python和Pygame不太熟悉,但我在PHP、HTML、C#和VB方面有不少经验,特别是在Windows窗体应用程序方面。
在这个项目中,我想在右边做一个菜单,假设有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 个回答
所以,有点难以确切知道你想要什么。不过我想强调一下简单性,如果你创建这么多文件,肯定会让自己感到困惑,而且会有很多重复的代码。
从我个人制作游戏的角度来看,我的所有界面都是一个类里的方法。虽然有一些实例变量,比如屏幕,但每个方法都包含主要的pygame循环,也就是:
while True:
for event in pygame.event.get():
#whatever
pass
当按下按钮时,可以在你的类中切换到另一个方法。我建议为每个选项卡按钮创建一个类,或者为整个选项卡按钮组创建一个类,这样可以在每个选项卡的方法中更新、绘制到屏幕上并使用。
这和php和html的不同之处在于没有预定义的结构,因为你需要从零开始构建所有这些。如果需要的话,我的网站上有一些代码片段可以用来制作按钮等。这里有一个链接。
另外,如果你选择使用单独文件的方法,python的导入功能非常直观,你可以简单地使用:
from tabLayout3 import Layout3
(前提是tabLayout3.py的路径在我的python路径中)