我正在制作一个控制台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";
}
怪物列表的代码是:
public List<Character> enemies()
{
List<Character> enemies = new List<Character>();
enemies.Clear();
enemies.Add(new Orc());
return enemies;
}
答案 0 :(得分:0)
你可以使用这样的东西:
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;
答案 1 :(得分:0)
您需要向Character
类添加标识符属性,以便识别特定的敌方对象并对其执行某些操作。 Guid
类适用于此目的。
答案 2 :(得分:0)
真的不确定你要完成什么,但是C#中的类是引用类型。这意味着如果您修改集合外部的同一敌方对象,则该更改也会反映在集合中。目前还不清楚你打算如何使用它。什么对象拥有你的敌人列表?你如何种植从列表中找回某个敌人?一旦你从列表中获得了你想要的敌人,更新就是微不足道的。