这不是一个技术问题,而是一个风格问题。我正在对Android的peg solitaire进行推广,你可以玩不同的级别。它们中的每一个都有不同的电路板起始配置,你可以做的不同动作组等等。现在我用一个基本级别对它进行编程,所有这些变量都是按照原来的方式进行初始化。
我是否添加了具有所有不同级别的文本文件,并对其进行编程以从文本文件中读取它?我是否从每个级别添加包含所有这些信息的Level类,并在初始化时生成多个Level对象?我是否制作了Level类,但是通过从文本文件中读取级别来初始化它?
我确信所有的方法都能奏效,但有没有标准的方法呢?我以前从来没有编过类似的东西。
答案 0 :(得分:5)
实际上没有一种标准的方法可以做你想要的,它实际上取决于你需要存储的数据的复杂性来进行每个级别的初始化。这些数据会改变还是静止的?将它正确组织并与代码逻辑分离是否有意义?这些是你需要回答的问题,因为这是你的游戏,我们不知道所有的细节。
鉴于此,您决定是否应将该数据存储在XML文件,TXT文件或其他内容中。确实没有正确的答案。但是你应该(IMO)总是有某种Level
类,这是进入OOP环境的正确方法。构造函数可以具有从XML / TXT /任何数据构建级别的必要参数。它也可以具有所有级别参数,因此您可以根据代码初始化所有内容,如果您出于某种原因需要。当然,不要忘记所有这些级别属性的getter / setter方法。
我认为你不应该做的一件事是“在初始化时制作几个Level对象”。你应该将你的游戏逻辑与数据分开,你不应该那样混合。
可能不是你想要的答案,但这主要取决于你。
答案 1 :(得分:2)
我的朋友和我这样做的方式是将级别属性存储在数据库中,然后根据用户选择的级别,我们读取数据库并将其加载到我们的Level类中,从而为用户创建游戏级别!
修改强>
我们也是初学者,但是在第一个制作完成后,很容易制作新的关卡。 =]特别是因为我们所要做的就是在数据库中添加一行并填写值。