2013-02-23 54 views
0

我想在Android中创建一个游戏作为自我开发项目。它会变得非常复杂,所以我想我应该得到一些建议。我知道有一种解决方案有很多方法,但是,如果我的方法是正确的/错误的,或者我怎样才能使它更好,那么我们会提供任何帮助。android中的面向对象的方法

我试图设计一个中世纪时代的战略游戏,像王国,文明等

这里是我的结构至今项目:

A main java class called Units.java with basic attributes like HitPoints, Attack, etc. 
A few other classes called Quarry.java, SwordsMan.java, Archer.Java which extends Units.java 
A main activity called Game.java which extends Activity class and will create instances of SwordsMan.java, Archer.java, Quarry.java 

现在,我有一个XML文件称为data.xml,它以节点格式存储每个事物的数据。下面是从XML文件中的代码片段:

<building id="0" name="Barracks" hp="1000" attack="0" armor="3" range="0"> 
    <cost wood="175"/> 
     <unit id="0" name="Archer" hp="70" attack="13" armor="1" range="4"> 
     <cost food="60" gold="20"/> 
     </unit> 
</building> 

所以现在,我使用的解析在由类Archer.java ...的它使用SAX解析器和拉动的构造器调用的方法这个XML文件数据的起始元素和属性名称=“Archer”。

我在做对吧?或者我的方法完全错误?

非常感谢。

+0

好的,但你为什么要使用XML存储? 你为什么不把信息保存在领域或什么... – SmRndGuy 2013-02-24 00:03:06

+0

你可能是正确的我不知道,我做游戏,我使用opengl,并保持在课堂上的一切,即时通讯类似的初学者,我看到你的最后一个,我从来没有使用saxparser,但祝你好运,theres有很多不同的方法来制作游戏 – JRowan 2013-02-24 00:05:05

+0

我不知道为什么我使用XML来保存信息...也许因为它得到节点格式保存。我想为此使用简单的数据库,但是,一位朋友建议使用XML。 什么是更好的方法?使用XML是一种很好的方法吗? – 2013-02-24 00:22:32

回答

0

您的.java文件的OO设计看起来不错。

如果这是您的意图,XML将是一个很好的创建保存文件的想法。尽管如此,我不会在Archer.java的构造函数中解析整个事物 - 这看起来很随意。我建议一个单独的类专门处理保存的文件。

至于XML与数据库,它取决于你打算如何使用保存的数据。如果你阅读全部内容或者一次写完全部内容,那么可能是合适的。将XML文件保存到SD卡可以使共享已保存的游戏变得很容易。如果您预见只更改某些部分以保存和恢复活动游戏的状态,则应该使用数据库,因为使用XML时,每次都必须重写整个文件。

请记住,在Android中,您的应用程序应该随时处理被终止的事件(例如,如果用户在游戏过程中接到电话)。然后,它应该在重新启动时提供良好的用户体验,而不会失去游戏的进度。

+0

谢谢埃里克。这是一个很好的见解! :) – 2013-02-24 08:36:13