所以我开始为学校项目制作游戏。它是没有图形的口袋妖怪的简单版本,只有文字。目前我的问题是我不知道如何存储所有口袋妖怪(每个单独的统计数据)、 Action (及其统计数据)等的数据库。
每个口袋妖怪(151 个不同)都有关于每个 Action 的统计数据和特定信息,每个 Action (大约 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...]
要将 Pokemon 送给玩家,您只需实例化一个具有名称(例如“Pikachu”)的新 Pokemon,然后实例化一些“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.
您可以为这个特定的皮卡丘改变任何东西,或者您可以制作另一个皮卡丘或一只妙蛙种子送给其他玩家。
要保存游戏状态,您可以使用 toString 方法以 JSON/XML 格式输出该对象的属性,然后您可以将它们保存在文本文件中。
这是一个相当简单的设计。当然,您可以像其他人建议的那样使用复杂的设计模式来增强功能。
关于java - 存储口袋妖怪类型游戏信息的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19624733/