因此,我已经开始为学校项目制作游戏。这是口袋妖怪的简单版本,没有图形,只有文字。目前我的问题是我不知道如何存储所有口袋妖怪(每个统计数据),移动(及其统计数据)的数据库。
每个口袋妖怪(151个不同)都有关于每个 Action 的统计信息和特定信息,每个 Action (约100个)也都有具体的统计信息和信息。所以我真的不能做一个神奇宝贝课和从中延伸出来的151个课。我能做的是制作一个Pokemon和Moves类的数组,并让Pokemon类(或move类)的构造函数具有统计信息。
我遇到的麻烦是弄清楚如何给玩家(或我正在与之作战的敌人)提供一个口袋妖怪(与皮卡丘一起滚动)并编辑该口袋妖怪的属性,等级,经验等。我不想更改游戏中每个皮卡丘的等级,只想更改玩家的特定皮卡丘和敌人的特定口袋妖怪。那有意义吗?
我对Java不太熟悉,我不确定该怎么做。我见过有人尝试做同样的事情,有人建议使用XML或其他东西?我试图将其全部保留在Java中。
最佳答案
一个非常简单的解决方案是(伪代码)
class Pokemon:
String name
String/int... other_stats
Array<Move> moves // This is a simple strategy to store any moves
// you want to associate with this pokemon.
class Move:
String name
int power
[...other move stats...]
要将Pokemon赠送给玩家,您只需实例化一个具有名称的新Pokemon(例如“Pikachu”),然后实例化一些“Move”对象以与刚创建的Pokemon关联。因此,例如:
ArrayList<Move> moves = new ArrayList<Move>();
moves.add( new Move("Thunderbolt", 16) );
moves.add( new Move("Foobar", 10) );
Pokemon pikachu = new Pokemon( "Pikachu", moves )
// and now you can give pikachu to any player you want.
您可以为此特定的皮卡丘更改任何内容,也可以制作另一个皮卡丘或Bulbasaur赠送给其他玩家。
要保存游戏状态,您可以使用toString方法以任何方式以JSON/XML输出该对象的属性,然后将其保存在文本文件中。
这是一个相当简单的设计。当然,您可以使用其他人建议的复杂设计模式来增强功能。