我正在尝试为我的游戏角色创建一个灵活的服装系统。目前,我已经有了一个基类,所有子类将从中继承,并添加接口来确定它们实际上穿在哪些身体部位上。以下是我的代码:
public class Clothing
{
public EClothingBind[] Types;
public int ID;
public int Priority;
public bool HidesUnderlying;
public AnimatedSpriteMap Graphic;
public Color Blend = Color.White;
public virtual void Update(GameTime gameTime)
{
Graphic.Update(gameTime);
}
public virtual void Draw(Vector2 position)
{
Graphic.Tint = Blend;
Graphic.Draw(position);
}
}
public interface IClothingHead { ... }
public interface IClothingChest { ... }
public interface IClothingLegs { ... }
public interface IClothingFeet { ... }
目前来看,由于设计并没有真正限制可以实现我的IClothing接口的内容,因此这种做法并不好用。是否有一种方法可以将接口实现限制在特定类型中?我不想将我的接口转化为类,因为我希望一件衣服(比如长袍)可以覆盖整个身体(实现所有四个接口)。我有些迷茫,不知道最好的做法是什么,非常感谢任何意见。谢谢。