我曾经并且一直在寻找一个关于如何制作游戏菜单的例子。例如,我想让应用程序打开菜单。从那里它将打开“玩游戏”“显示积分”“退出”。
到目前为止,我所看到的一切都是弹出菜单..
所以我寻找的答案是关于使用“状态”,如暂停状态,游戏状态等等。但是我无法弄清楚应该是这样的布局还是应该如何使用..而不是如何创建MenuState和无法在任何地方找到一个例子
使用过剩和freeglew
答案 0 :(得分:6)
基本思想是在相机前面创建一些纹理四边形,当用户点击屏幕时将其转换为世界空间,找出哪个四边形,以及它们点击了哪个按钮。您可能会发现正投影是前往此处的方式。
具体实现取决于您如何与键盘和鼠标(GLUT,SDL等)进行交互。
您可能需要考虑使用CEGUI,FLTK或类似的GUI框架,因为这通常是一项复杂的任务。
游戏状态是从一个uesr通过游戏中抽象出来的一种简单方法。它允许您将游戏的不同区域建模为DFA上的节点或使用堆栈。然后,您可以通过创建GameState对象继承的api来实现此目的。然后,您可以通过从此界面中获取类来实现不同类型的游戏状态。
接口本身可以提供一些方法,允许状态在激活时以及“暂停”等状态时得到通知。
如果使用DFA管理状态,则有一个活动状态表示DFA的当前节点。然后状态可以根据游戏输入选择要进入的新状态(按菜单中的播放按钮等)。
如果您使用堆栈管理游戏状态,则会略有不同。首先,将菜单状态推入堆栈,然后在选择级别时,您也可以将其推入堆栈。当关卡结束时,状态从堆栈中弹出,用户返回主菜单状态。
这里有一个简单的游戏引擎示例:https://bitbucket.org/iwillspeak/thulium/src。 GameState
是游戏状态的基类。这些由GameStateFactory
管理。 SampleState
是一个示例游戏状态实现。