Torque X 官方文档中文译稿(2)——模板系统

模板系统

Torque X使用模板系统来创建新的对象。一个模板就是一个普通的游戏对象,除了模板对象不可以在引擎中注册。取而代之的是,克隆一份模板,然后将这个模板对象注册到引擎中。

一个模板的例子

假设你有一个反坦克炮的游戏。玩家目标是摧毁所有燃料储罐。在游戏中会出现相当多的燃料罐。你需要配置一个基本的燃料罐对象,然后重复地创建燃料罐。在Torque X中,燃料罐对象被配置为一个模板。当你需要创建燃料罐时,就去克隆这个模板。克隆返回的对象等同于燃料罐模板。将它放置在合适的位置,然后注册它。现在你就拥有了一个燃料罐,并且原始的燃料罐模板依然能够被继续克隆。下面的代码描述了这个过程:

T2DSceneObject fuelTankTemplate = TorqueObjectDatabase.Instance.FindObject<T2DSceneObject>("FuelTank");
if (fuelTankTemplate != null)
{
    T2DSceneObject fuelTank = (T2DSceneObject)fuelTankTemplate.Clone();
    fuelTank.Position = new Vector2(50, -20);
    TorqueObjectDatabase.Instance.Register(fuelTank);
}
 

 

注意,在克隆之前,我们必须确保模板不为空。这是一个好的习惯,因为模板可能不存在。例如,燃料罐模板被声明为levelData.txscene文件。这使得该模板能够更容易地从Torque X 2D引擎中移除。如果你没有检查它是否为空,那么当你试图去克隆该模板时,游戏将会异常中止。另外一个找到模板对象的方法如下所示:

// unsafe way to find a template object
T2DSceneObject fuelTankTemplate = (T2DSceneObject)TorqueObjectDatabase.Instance.FindObject("FuelTank");
 

 

这个版本的确管用,但是当模板对象被找到但是并不是想要转换的类型,那么会抛出异常。出于这个原因,我们建议你使用FindObject的带参重载来完成查找模板的工作。

 

如何指定一个模板

我们已经知道,模板和一个普通的对象是一样的,除了它的IsTemplate属性是true以外。下面是一个例子:

T2DSceneObject myTemplate = new T2DSceneObject();
myTemplate.Position = new Vector2(50, 50);
myTemplate.Name = "Position5050Template";
myTemplate.IsTemplate = true;
 

 

在这个例子中,一份克隆自模板的对象的位置被设置为了50,50。但是此刻它不包含任何组件,且其他值都为默认值。所以在你真正能够使用这份克隆对象之前,你需要更多的配置代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值