GBA游戏开发简单入门 (续篇).doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GBA游戏开发简单入门 (续篇).doc

GBA游戏开发简单入门 (续篇) 作者:水银 文章来源:掌机之王 更新时间:2004-1-22 本节修改自教程8 在原来的教程8里我们使用的是16点阵的汉字库,但在实际应用中大家都知道,GBA大多使用12点阵的字库,因为12点阵字库与16点阵字库有点重要差别,这里做一个补完版^_^ HZK12的字模存储格式为(行X列):?12x16?,这就是与HZK16不同的地方。每个字模占用24个字节,偏移地址的计算公式同HZK16。 所以,我们要做两个工作: 1.把HZK2GBA里的偏移量修改为:?offset?=?(94l*(qu-1)+(wei-1))*24l; 2.修改画单字符点阵的循环: for(i=0;i<12;i++)   for(j=0;j<2;j++)     for(k=0;k<8;k++)       if(convert(ZKDATA[n*24+i*2+j],7-k))         DrawPixel(x+j*8+k,y+i,r,g,b); OK,完毕。ASCII的点阵还是没写,大家就先用全角的E文吧:P 本节源程序 /gba/tutor/t8_2.zip 修改自?教程8?GBABOOK 本节主要内容是DMA3传输函数和GBA时钟函数的使用。 1.GBA的DMA的通道有4个: DMA?0?用于内部数据传输; DMA?1、2?用?Direct?sound?数据传输; DMA?3?用于传输任何数据; 我们这里只用到DMA3将ROM里图片数据传输到显示内存,而不象以前那样经过CPU处理,因此速度很快——MODE5下可以轻松达到30FPS上,让我们的流畅显示图片序列。 void?DMA_Copy(u8?channel,?void*?source,?void*?dest,?u32?WordCount,?u32?mode) channel参数是通道,source是源数据地址,dest是目的数据地址,WordCount是传输的数据字数(注意!是字,两个字节),mode是传输模式是16/32位; 2.GBA?CPU?主频是16.78?MHZ?(59.595?ns),这里我们使用1024时钟周期(61.025?ms)做计时单位,也就是说当运行了16386(1s/61.025ms)个计时单位就是1s。 本节的工具/程序使用方法: 1.用超级解霸生成电影片段的序列BMP; 2.用图像工具XNview(/gba/tools/xnview-win.zip?1.5M)? 2.用book2gba生成gbabook.h,如果片段时间较长(比如5s),book2gba的延时可以视情况设置长一点,一般在5s左右,注意book2gba.exe、t2g.exe、freeimage.dll要与图片在同一目录; 3.拷贝gbabook.h到源程序的gfx目录里,用ARM?SDT/GCC编译就行了。 注意:使用GCC编译时,gbabook.h会有容量限制,大概是5M以上就无法编译,而且速度很慢;建议使用ARM?SDT!冒险上传ARM?SDT及破解,/gba/tools/armsdt.rar(25.5M),需要的兄弟赶紧下载,会很快删除的:( 因为图片未经过压缩,生成的ROM容量很大,大概1M/s,基本上没有什么实用价值了-_-;不过,可以来骗骗人,比如,可以用我转换的例子可以发一篇新闻,标题为“PS2?大作《真·三国无双》强力移植GBA”…… 本节源程序(/gba/tutor/t13.rar?2.4M),带60张序列图片,容量稍大,见谅。 只想看DEMO的可以下载?/gba/tutor/t13demo.rar?1.3M 附:按左右键可控制播放。 本节使用directsound?lib来播放wav,不过要注意的是:wav文件最好是8bit/单声道的,大家可以用Awave?Studio(/gba/tools/awave82.zip)的另存功能来完成转换工作。 接下来我们使用wav2gbac(/gba/tools/wav2gbac.exe)来把.wav文件转换成.c文件,供程序中使用,"wav2gbac?sound.wav"即可,得到一个sound.c文件。 在程序中使用方法很简单?"PlaySound(SOUND_DATA,?SOUND_SAMPRATE);?"?SOUND就是你的wav文件名。记得加一个"while(!0);"以播放所有wav数据。 本节源程序?/gba/tutor/t14.zip

文档评论(0)

gshbzl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档