我工作的一個遊戲,將有可能專門針對每個怪物的四肢,所以你可以瞄準頭部,腿部,循環...通過父/子結構
我有這個構造函數:
public Humanoid(Race race, Gender gender, string firstname, string lastname = null)
{
this.Legs = new List<Leg> { new Leg(), new Leg() };
this.Torso = new Torso();
this.Arms = new List<Arm> { new Arm(), new Arm() };
this.Heads = new List<Head>
{
new Head
{
Ears = new List<Ear> { new Ear(), new Ear() },
Eyes = new List<Eye> { new Eye(), new Eye() }
}
};
}
所有這些肢體從接口ILimb
繼承。
什麼是最好的方式能夠循環所有的肢體,包括孩子(如適用)?
我可以添加一個protected List<ILimb> { get; set; }
然後添加每個,但這是多餘的。
任何想法或改進建議?
我會使用具有自定義屬性的System.Reflection庫。用一些屬性標記您的肢體,然後使用反射庫獲取Humanoid的屬性,然後根據自定義屬性過濾該列表。那麼你有一個你可以通過https://msdn.microsoft.com/en-us/library/a4a92379(v=vs.110).aspx –
進行遍歷的所有'ILimb'的列表'Arms'列在一起並循環播放。 –
@MattBurland:你的意思是concat? – Spikee