问题描述
我正处于制作游戏的早期阶段,我正面临一个问题……垃圾收集器。我有一个创建所有 pokemon 信息的工厂,例如,这里是 magikarp :
private PokemonInfo Magikarp()
{
//General information
int pokedex = 052;
string name = "Magikarp";
string description = "It is said to be the world’s weakest Pokémon. No one kNows why it has managed to survive.";
int gender = (int)Enum.gender.Both;
double height = 0.9;
double weight = 10;
//Typing
int type = (int)Enum.type.Water;
//Abilities
List<Ability> abilitiesPokemon = new List<Ability>();
abilitiesPokemon.Add(abilities[(int)Enum.ability.Swift_Swim]);
//Stats
int baseHP = 20;
int baseAttack = 10;
int baseDefense = 55;
int baseSpecialAttack = 15;
int baseSpecialDefense = 20;
int baseSpeed = 80;
//Battle
int catchrate = 255;
int experience = (int)Enum.experience.Slow;
int experienceYield = 20;
//Moves
List<Learnset> learnset = new List<Learnset>();
List<Move> tmPokemon = new List<Move>();
//========================================================Leveling
learnset.Add(new Learnset(moves[(int)Enum.move.Splash],1));
learnset.Add(new Learnset(moves[(int)Enum.move.Tackle],15));
learnset.Add(new Learnset(moves[(int)Enum.move.Flail],30));
//========================================================TM
tmPokemon.Add(moves[(int)Enum.move.Bounce]);
return new PokemonInfo(pokedex,name,description,gender,height,weight,type,abilitiesPokemon,catchrate,experience,experienceYield,baseHP,baseAttack,baseDefense,baseSpecialAttack,baseSpecialDefense,baseSpeed,learnset,tmPokemon,Gyarados(),20);
}
有没有办法用我所有的 PokemonInfo 数据创建一个文件?我可以使用的东西:
Pokedex.GetInfo(FILE.Magikarp).description;
我在网上四处奔波,四处寻找,但找不到解决方案>.
解决方法
您可以创建一个类(或静态类)并声明静态公共属性(或字段)来保存您的 Pokemon。 在静态构造函数中,您可以定义(和存储)所有的 Pokemon。
public class Pokemons
{
static Pokemons()
{
// here you set variables for your Pokemon
// Then you set the Pokemon to the static field
Magikarp = new PokemonInfo(...);
}
public static readonly PokemonInfo Magikarp;
}
在你的代码中的某个地方,你可以像这样访问你的口袋妖怪:
var myPokemon = Pokemons.Magikarp;