rpg游戏通用开发工具——图形部分的处理

rpg游戏通用开发工具——图形部分的处理

ID:14417187

大小:50.00 KB

页数:10页

时间:2018-07-28

rpg游戏通用开发工具——图形部分的处理_第1页
rpg游戏通用开发工具——图形部分的处理_第2页
rpg游戏通用开发工具——图形部分的处理_第3页
rpg游戏通用开发工具——图形部分的处理_第4页
rpg游戏通用开发工具——图形部分的处理_第5页
资源描述:

《rpg游戏通用开发工具——图形部分的处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、RPG游戏通用开发工具——图形部分的处理1、图块库的结构图块库由图块索引和图块内容两部分构成。因为图块的字节长度是不固定的。图块索引的结构:每个索引的长度为一个int(4bytes);图块内容的结构:(1)8bytes的图块信息头typedefstruct{ shortblkwidth;//图块的宽度(以点阵来计算) shortblkhigh;//图块的高度(以点阵来计算) shortblkorx;//图块在X方向相对于绝对位置的偏移量 shortblkory;  //图块在Y方向相对于绝对位置的偏移量}BlkInfo;(2)长度不固定的图块内容其结构是以行为

2、单位,进行处理的。它的每一行的结构  1byte  nbytes画这一行需要阅读多少字节不定长度的线段内容 它的每个线段内容的结构1byte1bytenbytes相对于上次位置的偏移量这个线段共需要画多少个字节这个线段的具体内容     阅读图块的C语言算法voiddrawblk(char*dest)/*输入参数:dest-图块将展开成像素格式到这个目的缓冲区内*/{ BlkInfomInfo;       //包含了这个图块的图块信息头  UCHARreadnum;      //画这一行应该阅读多少字节 UCHARdrawnum;    //每个线段所用掉

3、的字节数 UCHARusednum;   //目前画过的线段已经用掉的字节数 char    mx;  //当前的线段应该画在的位置(相对于本图块的绝对位置) int     offset;//因为dest是连续的内存,不分宽度和高度的,需要             //一个变量来计算画点到dest的偏移量。 LPSTRlpBlk;       //指向本图块的开始位置的指针  shorty=mInfo.blkhigh-1;//实际需要画的行数 int  bufWidth;   //dest接收的宽度(是为了兼容标准位图的标准格式)       //在这里可以

4、认为等于mInfo.blkwidth int  i;  for(i=0;i

5、   lpBlk++;                //指针指向了即将画出的线段的                         //实际字节数      drawnum=*lpBlk;        //取得即将画出的线段的实际字节数      lpBlk++;                 //指针指向了即将画出的线段的                         //实际内容      offset=y*bufWidth+mx;      //计算应该拷贝到dest的那个位置      memcpy(lpDIBits+offset,lpBlk,

6、drawnum); //到dest的内存拷贝      usednum=usednum+drawnum+2; //计算已经画出的线段用了多少                              //字节      lpBlk=lpBlk+drawnum;      //指向下一个即将画出的线段    }    y--;     //标准位图是从最后一行开始算起的  } } 注意:只是为了说明图块的解码方法。对于转化成标准内存位图,需要宽度边界的判断。对于直接写入屏幕缓冲区,还需要进行是否超过缓冲区边界的判断。2、阅读图块库的类-CBlkLibApi的数据

7、和函数成员classCBlkLibApi{public: CBlkLibApi(); virtual~CBlkLibApi();protected: CPalette*pPal; //char*blkBuffer; HBLKblkHandle; //UINT*idxBuffer; HBDXidxHandle; CListidxList; intblkNumber; CStringpalFileName;public:  BOOLEANExportBlk(intindex,CFile&file);  //把指定编号的图块输出成标准位图格式 

8、BOOLEANLoadBlkLibFi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。