我目前正在使用XNA开发游戏,不确定该如何进行以下操作...
我有一个建筑基类,如下所示:
我有多个子类来构建不同类型的建筑物,例如。
我的问题是,为创建子类设置默认值的最佳方法是什么。
例如,城镇大厅的木材需求设置为500,但在代码的各个位置上,我需要在声明城镇大厅实例之前访问此值(当检查是否有足够的木材来建造时)。
我目前拥有每种建筑类型的全局默认变量数组,但我想知道是否有更好的方法来做到这一点。
我有一个建筑基类,如下所示:
public class BuildingsBase
{
private int _hp;
public int hp
{
get { return _hp; }
set { _hp= value; }
}
private int _woodRequired;
public int woodRequired
{
get { return _woodRequired; }
set { _woodRequired = value; }
}
}
我有多个子类来构建不同类型的建筑物,例如。
public class TownHall:BuildingsBase
{
public int foodHeld;
public TownHall()
{
foodHeld = 100;
woodRequired = 500;
}
}
我的问题是,为创建子类设置默认值的最佳方法是什么。
例如,城镇大厅的木材需求设置为500,但在代码的各个位置上,我需要在声明城镇大厅实例之前访问此值(当检查是否有足够的木材来建造时)。
我目前拥有每种建筑类型的全局默认变量数组,但我想知道是否有更好的方法来做到这一点。
if (Globals.buildingDefaults[BuildingType.Townhall].woodRequired < Globals.currentWood)
{
Townhall newTH = new Townhall();
}
woodRequired <= myCurrentWood
的值,如果没有足够的木材可用,就将对象销毁。当然,如果你有大量计算的巨型对象,就不应该这样做。用户不知道你已经持有对象,只是调用.Show()或其他操作。 - Nitro.deint currentWood()
函数,并在对象的构造函数中进行检查,如果木材不足,则可以停止创建。 - Nitro.de