博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

场景管理(一):根据配置文件加载地图信息

Posted on 2011-06-29 12:14  +石头+  阅读(402)  评论(0)    收藏  举报

游戏常常以地图为单位,地图信息中处理地图本身的地形外,还包含地图上需要加载的各个物体的信息。

我们以配置文件的形式加载地图,文件中除了地图的高度图外,还有地图上的物体加载的信息,每个物体包含了id和位置信息(x和z,y由地形自动的判断)。

[Map]

HeightFile=RES\HeightMap\Map2.bmp

PathFile=

[OBJList]

OBJ1=7,30,49

OBJ2=2,10,39

OBJ3=4,40,-9

OBJ4=6,10,-81

OBJ5=3,50,-21

加载GameObj时也是用到读取配置文件的方法,其中包括.x文件,纹理,缩放和旋转的值,以及游戏中逻辑的内容。简单例子如下:

[OBJ]

XFile=RES\\SM\\S001.x

FaceFile=S001.tga

ZoomX=300

ZoomY=300

ZoomZ=300

//模型本地空间旋转偏移

BodyRotaX=

BodyRotaY=

BodyRotaZ=

//游戏逻辑

Name=

HP=

MP=

//阻塞

BlockArea=

OnMapHeight=

//渲染模式

RendType=

读取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);

读取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);

其中个参数的意思:

LPCTSTR lpAppName ------- INI文件中的一个字段名

LPCTSTR lpKeyName -------- lpAppName 下的一个键名,也就是里面具体的变量名

LPCTSTR lpString ---------是键值,也就是变量的值, 必须为LPCTSTR或CString类型

LPCTSTR lpFileName --------完整的INI文件路径名

LPCTSTR lpDefaut ----------如果没有其前两个参数值,则将此值赋给变量

LPSTR lpReturnedString --------接收INI文件中的值的CString对象,即接收缓冲区

DWORD nSize ------接收缓冲区的大小