查看完整版本: [-- [请教]如何封装DirectX --]

-> 同人游戏创作/Doujin Games Workshop -> [请教]如何封装DirectX [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

上帝之手 2010-03-25 12:22

[请教]如何封装DirectX

最近看了下HGE,好像不配置DirectX路径也能运行,是不是把DirectX相关功能封装到HGE里了?现在自己写的引擎需要安装DirectX才能运行,我想问下,如果是那样的话,是如何把DirectX封装自己的引擎里的?在不装DirectX的电脑上也能运行自己的引擎?

貘良了 2010-03-25 13:38
有个误区要解释下,HGE用到的是DirectX 的图形引擎。其他东西例如Directshow没有包含在内。

楼下的群众继续解释封装Directx的问题,我觉得太抽象,说不清楚。

ryuka 2010-03-25 19:34
winxp 自己就装了dx在系统里面的。没directx 怎么可能运行你的引擎阿。你的问题是不是:你自己的引擎需要安装dxsdk才能运行?那估计是你用了D3DX而且链接到了d3dx的dll上面了,你只要随你的引擎带上D3DX的dll就可以了。
怎么找你的d3dx的dll呢。有2个办法。1.找到你的dxsdk里面的lib里面的d3dx9.lib,用ue之类的打开,看看link在哪个dll,然后你去下个。2.找到你dxsdk里面的redist目录。里面有一些cab包,找到和你dxsdk时间对应的d3dx的那个cab,dll就在里面了。
顺便说下HGE是用的DX8,1的。那时候的sdk的d3dx (包括2003年以前的dxsdk里面的d3dx9)是静态的lib,所以不用带什么dll。

上帝之手 2010-03-26 12:18
谢谢回复,我的意思是在vs里需要配置DirectX的include和lib目录才能用的。而HGE好像不用配置这个路径就能用了。因为我做的引擎里用到了#include <d3dx9.h>。所以如果不配置路径,就会找不到d3dx9.h的错误信息。这个该怎么做呢?

貘良了 2010-03-26 14:50
从源头开始动手解决问题。

首先,hge是用DX8的,而你的是d3dx9,也就是用DX9的,所以要么彻底把HGE源码修改成DX9的,要么就不用HGE了。
下面是dx9版本的HGE引擎:http://www.pudn.com/downloads167/sourcecode/others/detail768616.html
就好比如说,DirectShow没有封装在HGE里,也是同理。

还有一个东西LZ可以去看看,就是使用HGE引擎的OGF框架的使用。

http://www.cppblog.com/lwq49/archive/2007/09/10/31976.aspx?opt=admin
OGF游戏框架是一个基本MPL开源协议的开源项目。它是针对2D游戏普遍的执行流程而提出的框架,而并非一个图形引擎(内核图形引擎是基于HGE)。除了为游戏提供整套的管理规范及流程外,同时提供经常用到的计时器、动作引擎等附助功能;并以组件的形式提供,有利于独立扩展,减少组件的重复开发,加快开发进度。

上帝之手 2010-03-29 12:16
谢谢指点,我去看看先。


查看完整版本: [-- [请教]如何封装DirectX --] [-- top --]


Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.018766 second(s),query:2 Gzip enabled