Torque引擎系列之核心类(ShapeBase)

来源:互联网 发布:网络直播网站规划书 编辑:程序博客网 时间:2024/04/29 00:18

在游戏世界中,我们不仅可以把物体分为静态的和动态的,而且可以分为有形的和无形的。游戏中的人物、交通工具、建筑都属于有形物体,而一些爆炸、激光、烟雾等粒子效果则是无形的,实际上这里的无形是指没有固定的形状。有形物体需要美工进行3D建模,另外可以挂接和被挂接、可以有动作和生命值。TGE中把这些特性抽象出来形成了ShapeBase类,可以说ShapeBase类是TGE中最重要的一个类,也是我们经常需要修改的类。它是游戏中很多重要实体类的基类,例如Player、Vehicle、Camera、Item.下面我将介绍一下shapeBase类的几个重要特性。
一、挂接和被挂接
在游戏中,我们经常需要把一个物体挂在另一个物体上。例如使用道具、换装、骑马等。在TGE中有两种挂接的方式,分别是mountObject和mountImage。前者主要用来挂接大型物体,而且被挂接的物体可以在场景中单独存在。而后者主要用来挂接一些小型物体(实际上只是图片而已),例如武器、帽子、衣服之类的东西,这些物体不能在场景中单独存在,只能依附于挂接物体。void ShapeBase::mountObject(ShapeBase* obj,U32 node)函数中,第一参数是被挂接物体,第二个参数是挂接点,挂接点需要美工在模型制作中加入。物体被加载的时候在onAdd函数中解析出来,注意物体被挂接时是被挂接物体的原点挂接在node上。而mountImage函数,我们可以在被挂接物体上指定mountPoint。
二、生命值和能量值
在shapeBase中,增加了两个重要的属性。一个是生命值,一个是能量值。并能够在界面中进行血条和生命条的绘制。shapeBase中把物体分为三种受伤状态,Enabled、Disabled和Destroyed。对应有disabledLevel和destroyedLevel,当物体当前的生命值到达某个level后,会进行状态的转换,并执行相应的回调函数。例如Disabled时,可以让人物倒地,或者车辆爆炸等。
三、播放动画
在脚本中,我们可以调用playThread函数播放指定的动画,另外调用setThreadDir函数可以控制动画的播放方向,即从前往后播或者从后往前播,另外调用pauseThread可以暂停动画。在动画播完后,还可以定义相关的回调函数。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 想开个童装店但是没经验怎么办 母乳不够吃宝宝又不喝奶粉怎么办 掉头发很厉害怎么办有什么偏方 红米2a刷死机了怎么办 公司退市我们买的股票怎么办 黑魂3把npc杀了怎么办 摔倒了膝盖摔肿了又痛怎么办 厕所堵了怎么办疏通马桶有妙招 月经不来怎么办如何让它快点来 苹果手机进水了开不了机怎么办 苹果5s进水了怎么办修要多少钱 吃了过期3年的药怎么办 离婚后孩子的抚养费不给怎么办 小车钥匙丢了怎么办配要多少钱 一键启动的车钥匙丢了怎么办 股票退市了手里的股票怎么办 3d硬金以后要换怎么办 偏指甲红肿长在了肉里怎么办 牙齿黄怎么办教你牙齿美白小窍门 2岁孩门牙磕断了怎么办 脸上用了含激素的产品应该怎么办 身上起红疙瘩水泡很痒怎么办 怀疑老公有外遇他不承认怎么办 苹果手机锁屏密码忘了怎么办 黑色t恤洗了掉毛怎么办 老婆要和我离婚我该怎么办 发现老婆有外遇最明智的怎么办 高度近视怎么办我快一千度近 天刀耐久度为0了怎么办 新车被4s店装了怎么办 h面和w面联系线怎么办 造梦西游3到80级怎么办 加95的车加了92怎么办 95的车加92的油怎么办 宝宝六个月了奶水变少了怎么办 六个月的宝宝不爱吃奶粉怎么办 脸上挤黑头留下的小坑怎么办 小孩身上起红疙瘩很痒怎么办 肛门上长了个肉疙瘩怎么办 脚撞了一下肿了怎么办u 怀孕9个月同床了怎么办