我正在努力实现棋盘游戏Cloud 9的Android版本。我以前从未设计过游戏,Android应用程序(除了1-2个你好世界的应用程序)甚至是带有GUI的程序(做了很多CLI),我对设计有一些疑问。
游戏基于回合制,因此这里没有实时考虑,我想知道最好做什么。游戏包含非常简单的2-3选项,用于玩家必须做出的每个决定,对于初学者我想让它“基于文本”,即有一个带有游戏“log”的TextView,并且每当人类玩家必须做出决定,他有2-3个按钮,可以选择他可以玩的选项。游戏包括几轮和关卡。
我开始实现游戏“核心”而没有完全使用GUI和AI玩家。然后我试图弄清楚如何允许人类玩家,GUI等。我当前的设计理念是GameEventListener
类,它将被告知游戏中的不同事件(圆形开始,圆形结束,某个玩家做过某个动作等),并让活动实现它,因此它可以绘制/写入屏幕发生的事情等。
然而,我不确定这是否是最好的方法,以及Android部分应该如何实现(例如,我希望在某些事件之后,玩家将有一个“继续”按钮,所以他可以看看游戏继续前做了什么 - 如何等待按钮被按下?如果我从听众功能返回,游戏将继续)。关于如何进行的任何建议?
答案 0 :(得分:1)
你可以在这里查看我的Tetrads Drop游戏,了解GUI和我的一些方法 http://code.google.com/p/tetrads-drop-lite/ 它是一个俄罗斯方块克隆,可以通过互联网与其他玩家一起玩。如果您需要一些GUI代码的帮助,Ed Burnette的“Hello,Android”是一本很好的书。
<强>更新强>
它与您的设计非常相似。
有这些包层次结构
-com.aunndroid.Engine (handling game logic)
-com.aunndroid.View (managing 2D Views)
-com.aunndroid.Tolk (communication between deivces)
答案 1 :(得分:0)
由于你的游戏是回合制的,我认为像GameEventListener这样的设计是可以的。 基本上,这种GUI可以通过回复事件来实现。您可以为侦听器分配每个UI组件。 例如,button.setOnClickListener(您的侦听器类);
对于不同的按钮,您可以分别为它们创建不同的侦听器类,也可以在一个GameEventListener中收集它们。如果操作对事件的反应并不复杂,我们甚至可以使用匿名类:
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
//do your operations here(e.g. get input, update UI)
}});