论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
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解析相关的事务时节省大量的精力,是一种符合代码重用思想的强有力编程工具。 (科教作文网http://zw.ΝsΕAc.Com编辑整理)
.况,请参.接口。
.
{
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号属性,您不必改变。
(科教范文网http://fw.nseac.com)
游戏脚本解析引擎类CXMLScriptSprite