所以我开始为学校项目制作游戏.这是一个更简单的口袋妖怪版本,没有图形,只有文字.目前我的问题是我不知道如何存储所有口袋妖怪的数据库(每个个人统计数据),移动(带有他们的统计数据)等.
每个口袋妖怪(151种不同)都有统计数据和每个移动(大约100个)的特定信息也有特定的统计数据和信息.所以我不能真正制作一个Pokemon类和151个扩展它的类.我能做的是制作一个Pokemon和Moves类的数组,并让Pokemon类(或移动类)的构造函数具有统计数据.
我遇到麻烦的是弄清楚如何将一个神奇宝贝(让皮卡丘滚动)给玩家(或我正在战斗的敌人)并编辑那个神奇宝贝的统计数据,等级,经验等.我不想改变游戏中每个皮卡丘的等级,只是玩家的特定皮卡丘和敌人的特定神奇宝贝.那有意义吗?
我是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...]
为了给玩家提供一个神奇宝贝,你只需要实例化一个带有名字的新口袋妖怪(例如“皮卡丘”),然后你会实例化一些“移动”对象以与刚刚创建的神奇宝贝相关联.所以,例如:
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输出该对象的属性,然后您可以将它们保存在文本文件中.
这是一个相当简单的设计.当然,您可以使用复杂的设计模式,因为其他人建议增强功能.