我正在努力实现一个安卓版本的棋盘游戏Cloud 9。我从来没有设计过游戏,android应用程序(除了1-2个hello world应用程序),甚至是GUI程序(做了很多CLI),我有一些关于设计的问题。
这个游戏是以回合为基础的,所以这里没有实时的考虑,我想知道最好做什么。这个游戏由非常简单的2-3个选项选项组成,玩家必须做出每个决定,对于初学者来说,我想让它“基于文本”,也就是说,有一个TextView上面有游戏的"log“,当人类玩家必须做出决定时,他会得到2-3个按钮来选择他可以玩的选项。游戏由几个回合和关卡组成。
我开始实现游戏的“核心”完全没有一个图形用户界面和AI玩家。我现在的设计思想是一个GameEventListener
类,它将被告知游戏中的不同事件(回合开始,回合结束,某个玩家做了某个动作,等等),并让活动实现它,因此它可以绘制/写入屏幕上发生的事情,等等。
然而,我不确定这是否是最好的方法,以及Android部分应该如何实现(例如,我希望在某些事件之后,玩家将有一个"continue“按钮,这样他就可以看到在游戏继续之前做了什么-如何等待按钮被按下?如果我从侦听器函数返回,游戏将继续)。对如何进行有什么建议吗?
发布于 2012-03-17 04:21:56
你可以在这里看看我的图形用户界面和一些我的方法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)
发布于 2012-03-17 03:42:38
既然你的游戏是以回合为基础的,那么我认为像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)
}});
https://stackoverflow.com/questions/9742377
复制相似问题