3.8 工具包D3DUtility-------CCrystalMagic类和CBlazeMagic类介绍
D3DUtility开发包中的CCrystalMagic类和CBlazeMagic类,分别对应游戏人物的一项魔法技能,他们有公共的基类CMagic,不同的是CCrystalMagic采用纹理贴图的方式实现,而CBlazeMagic是采用上面介绍的渐变动画方式实现。这里重点向大家介绍一下CBlazeMagic类的实现方法,通过对它的介绍相信大家也会对CCrystalMagic的实现也会有进一步的了解。 CBlazeMagic类的头文件声明如下: .工具生成。他接受位图数组到D3DXCreateTextureFromFile从而创建纹理。 Render函数接受从DXUT中OnFrameMove传下来的当前帧时间,达到连续播放的目的。进一步看一下Render内部的实现吧: // 计算当前纹理索引 .用。大家可以到我的源代码中看看。 3.9 工具包D3DUtility-------CXMLSprite类介绍
D3DUtility开发包中的CXMLSprite类----XML精灵类,是对msxml.dll中的API进行面向对象的封装,msxml.dll是Internet Explorer 4.0或更高版本的浏览器相关文件,用于解释XML文档的。封装的目的是为了给解析基于XML的游戏引擎脚本引CXMLScriptSprite. ● XML节点对象 XML节点对象代表的是XML文档内部的节点,如元素、注释、名字空间等。 ● XML节点列表 XML文档模块列表代表了节点的集合。 利用DOM,开发人员可以动态地创建XML文档,遍历结构,添加、修改、删除内容等。其面向对象的特性,使人们在处理XML解析相关的事务时节省大量的精力,是一种符合代码重用思想的强有力编程工具。 .况,请参.接口。 . { importlib("stdole32.tlb"); importlib("stdole2.tlb");
[ object, uuid(1ECBE81A-B69C-4a02-924D-C1C2A1A2B1B2),//IID dual ]
interface IXMLSprite : IDispatch { //properties: [propget, helpstring("Return the version of the CXMLSprite.")] BSTR GetNodeAttr([in] IXMLDOMNode * inNode, [in] const BSTR inAttr); appobject ]
coclass CXMLSprite { [default] dispinterface IXMLSprite; } }
产生XMLSpriteLib_h.h,和XMLSpriteLib_i.c,我们在CXMLSprite.h中包含它们就可以了,最后切记要实现一下COM中的IUnknow、IDispatch中定义的方法。然后才能调用,调用的代码如下: 然后就可以用pXml调用IXMLSprite中定义的方法了,是不是很简单呢?呵呵。 3.11 工具包D3DUtility-------CXMLScriptSprite类介绍
创建一个RPG游戏的项目时,会发现在源代码中编写游戏的相关信息十分困难。(游戏相关信息包括:角色的对白,物品的添加,人物模型的添加,物品的添加等)最好 的办 </D3DWindow> </D3DGameEngine>
也许你接着会问如何编写D3DScript.xml脚本,从而控制游戏引擎呢??不急,现在马上给出编写指南: D3DScript脚本编写指南: A、 D3DWindow节点(必须),负责Win32窗口的管理。height,width这两个属性可指定, 不指定的话,本脚本设置了默认值。title属性设置了窗口的标题。 imagename属性为必须。 H 、BlazeMagic节点(非必须),负责产生火焰魔法效果。id号属性,您不必改变。 play属性决定是否在游戏中出现这个场景。hotkey属性决定产生该效果的热 键。注意:BlazeMagic节点不用时可以不写,或把play属性置false即可。每 个BlazeMagic节点的相对顺序无所谓。但是这里已id=27的节点为准。 imagename属性为必须。 注意: CrystalMagic,GoldMagic、BlazeMagic的相对顺序无所谓。
游戏脚本解析引擎类CXMLScriptSprite
首页 上一页 3 4 5 6 7 8 下一页 尾页 6/8/8
WORD格式全文下载链接(充值:元)