我正在制作一个控制台RPG,并且是泛型的新手。我的问题是我想要一个英雄(存储在一个通用的英雄列表中)去攻击一个怪物(存储在一个通用的敌人列表中)。我的问题是让英雄从我的怪物类属中选择一个目标,然后修改怪物的hpcurrent。对于一个怪物和英雄来说,这很容易,但是当我扩展游戏时,我打算有几种类型的怪物和英雄;因此,我想为我的英雄使用一段代码,它可以从泛型中挑选一项并修改它的统计信息。之所以有两个泛型,是因为它让我更容易看到是否所有的英雄或怪物都死了。
我将发布怪物的代码(它与英雄的代码相同,只是数字不同):
class Orc : Character
{
public Orc()
{
this.hpcurrent = 12;
this.hpmax = 12;
this.mpcurrent = 0;
this.mpmax = 0;
this.strength = 6;
this.defense = 4;
this.magicstrength = 0;
this.magicdefense = 2;
this.agility = 4;
this.level = 3;
this.isaliveBool = true;
this.name = "Orc";
this.weakness1 = "fire";
this.weakness2 = "thunder";
this.battlemove = null;
this.typeofcharacter = "monster";
}monster列表的代码是:
public List<Character> enemies()
{
List<Character> enemies = new List<Character>();
enemies.Clear();
enemies.Add(new Orc());
return enemies;
}发布于 2011-09-02 21:06:54
您可以使用类似以下内容:
public List<Character> Enemies
{
if (_Enemies == null)
{
_Enemies = new List<Character>();
_Enemies.Clear();
_Enemies.Add(new Orc());
}
return _Enemies;
}
private List<Character> _Enemies;然后你可以像这样使用:
obj.Enemies[0].HP += 25;发布于 2011-09-02 21:07:33
您需要向Character类添加一个标识符属性,以便识别特定的敌人对象并对其执行一些操作。Guid类可以很好地实现这一目的。
发布于 2011-09-02 23:57:41
我真的不确定你想要实现什么,但是类是C#中的引用类型。这意味着如果您在集合外部修改相同的敌方对象,该更改也会反映在集合内部。不清楚的是你打算如何使用它。哪个对象拥有你的敌人列表?你是如何从列表中找到某个敌人的?一旦你从列表中找到你想要的敌人,更新就变得微不足道了。
https://stackoverflow.com/questions/7283811
复制相似问题