DS开发环境devkitPro和PAlib.docx_第1页
DS开发环境devkitPro和PAlib.docx_第2页
DS开发环境devkitPro和PAlib.docx_第3页
DS开发环境devkitPro和PAlib.docx_第4页
DS开发环境devkitPro和PAlib.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

devkitPro和PAlib建立DS开发环境,你首先得下载并安装devkitPro : devkitPro updater (/project/showfiles.php?group_id=114505&package_id=160396)。现在,用这个比较好的安装程序来安装devkitPro。注意!你可以不选择PSP和GBA库,但不要动其它选项(MSYS,devkitarm,libnds .)。如果省了一些东西,它会罢工的。如果你不能确定,那就选中全部,如果安装多了不会有问题的。现在PAlib需要你安装.Net框架。PAGfx(图像转换),PAFS(文件系统),和VHaM(IDE)安装需要它。/downloads/details.aspx?displaylang=zh-cn&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5下一步,下载并安装PAlib(使用安装程序):PAlib Installer /project/showfiles.php?group_id=142901&package_id=168612 把它安装到devkitPro的目录里,这样所有事情就完了。对于devkitPro和PAlib,注意,不能安装到一个名字中含有空格的目录中(如:c:DS DevelopmentPA Lib)。同样,也不能安装桌面,因为桌面的目录是c:Documents and Settings.现在完成了,进行下一步:)编译测试检查安装正确与否不需要大量的方法.它不难,来吧,希望它工作正常!我们将要编译第一个例子。打开PAlibExamplesTextHelloworld,双击build.bat来编译.如果一切正常,会生成helloworld.ds.gba和helloworld.nds文件。嘿,就这么简单!现在,有2种方法来运行rom:使用模拟器(注意,有很多bug)或硬件(flashme/passme/wifime/wmb)。模拟器目前只有4种模拟器,不过现在我们只有其中2种。HyperDs是第一种模拟器,从未公开发布,从未用过.lolDualis(/),运行得很好。我经常用它。它对2D测试表现得很好,能支持大量选项。缺陷:R12版本有一个bug-当使用笔时会崩溃,因此只好使用R11版来测试.我个人把.nds文件与Dualis程序相关联,双击rom会执行它。iDeaS(http:/www.rascalboy.nzone.it/ideas.html)是另一个比较好的模拟器!它是第一个也是目前唯一一个支持3D和声音的模拟器。最新版本已经出来很久了,而且WIP版本的截图让我们相信下一个版本很震撼,但是还没有出来.最后一个是DSemu,可能有新的插件功能,但我不用它。以后说不定会将ROM上传到DS上(略)SuperCard(略)编译这是一个编译方面的快速教程.PA模板机密首先,你需要打开PAlib模板。我将会说明一下它是如何工作的.可以看到,它包含一些文件和3个目录。模板说明先想一想.这个问题以前经常被问到.什么是模板(template)?知道了!你会说,模板是设计的一些形式,把内容分成不同的形式和结构。换句话说,它是一种组织结构,包含针对一个工程的所有开发文件。在模板里,有C文件,精灵(sprites)图像,背景,声音等。对应目录:source - 最重要的部分,源代码,基本是执行代码(.c或.cpp文件)。include - 头文件,提供源文件的帮助信息(.h文件)data - 后面会用到,声音等.对应文件:Makefile - 重要但复杂的文件,描述如何编译程序,不要担心它:Plogo.bmp和logo_wifi.bmp - 通过wifi传输ROM时用到的图像文件,不要在意它build.bat - 重要文件,用来建立(编译、生成)ROMclean.bat - 当你想要发布源代码或完成编程时,clean.bat删除所有建立的文件和ROM。它会减小体积.基本上它会删除所有build.bat生成的文件。project.vhw - 它很cool-在VisualHam(我们将要用到的编辑器)中打开整个工程。模板主要代码现在,打开template.pnproj或进入source目录打开main.c。就像它的名字一样,main.c是你的主程序文件。它包含了ROM开始时默认载入的内容。main.c包含了运行PAlib所需的基本内容。如果你编译并运行这个ROM在模拟器或DS上,它不会做任何事情,只显示2个白屏.以下是第一次打开main.c所看到的:Copy code / Includes#include / Include for PA_Lib/ Function: main()int main(int argc, char * argv)PA_Init(); / Initializes PA_LibPA_InitVBL(); / Initializes a standard VBL/ Infinite loop to keep the program runningwhile (1) PA_WaitForVBL();return 0; / End of main()解释代码!如果你懂C语言,它的含义就很清楚了。对于其它人可能不会,因此我来一行一行地解释,尽管内容只有三样.Copy code / Includes 简单:/意思是后面的文字是注释.当写下/,就是告诉编译器不要编译后面的内容.因此你可以随意写些东西做为内容!这行是告诉你可以把文件(图像等)包含在这儿。Copy code #include 意思是请把PAlib包含在我的代码中,我需要它。如果不写的话,就不能认别PAlib函数,并会得到错误信息。后面使用include的概念会很重要,它可以加入图像文件、其它重要的代码等。Copy code int main(int argc, char * argv)看上去很古怪,但每个工程都要有:它是程序的开始,所有东西开始的地方。不要抱怨(int argc, char * argv)是什么意思,不需要注意,你永远不会用到它:)只要知道下面是执行的代码!Copy code PA_Init(); / Initializes PA_LibPA_InitVBL(); / Initializes a standard VBL这2行在所有使用PAlib的工程中都能找到。第1行是通常的初始化。它为你的程序准备好使用精灵(sprites)、背景、文字、所有的东西。没有它PAlib就不会工作。高级用户可以修改第2行。基本上,VBL能将程序与屏幕同步,每秒60帧。如果不初始化VBL,程序要么运行很快(每秒100000帧,不能玩),要么完全不能工作(呆在第1帧)。一定在程序写上这2行。Copy code / Infinite loop to keep the program runningwhile (1)当括号里不是0时(这里它是1),while命令执行后面的代码。这儿它永远是1,所以这是一个无限循环。为什么?如果没有这个循环,每行代码只执行一次,程序就会结束而不显示任何东西。它会让程序永远执行下去,或直到玩家关机。在每一个循环中,程序会计算出所有下一次所需的所有东西并画到屏幕上。Copy code PA_WaitForVBL();最后一个命令将无限循环与屏幕速率(60fps)同步。如果没有,程序会象前面说的那样比屏幕快很多。Copy code return 0; / End of main()上面这些是结束代码,永远会是这样,不要烦它,让它呆一边:P现在,你了解模板的全部,继续来看如何显示文字!Hello World简单的hello world,显示PAlib有多容易.不会深入DS编程的细节,只说明它确实很简单,以及可能是第2天了:P这个文字系统使用背景,一个背景(每个屏幕有4层),你可以选择使用哪个屏幕和哪个背景。还可以用其它功能,如设置字体或改变颜色,但不是现在:P在PAlibExamples/Text/HelloWorld中可以找到以下代码(或相似的版本)Copy code #include /Include PAlibint main(void)PA_Init(); /Initialize the main libraryPA_InitVBL(); / Initialize Vertical BlankingPA_InitText(1,2); /Tell it to use text on screen 1, background number 2PA_OutputSimpleText(1,1,1,Hello World !); /Print the text on screen 1, with coordinate 1,1while(1) /Loop foreverreturn 0;如你所见,大部分代码与模板代码很相似。基本上,加了2行:Copy code PA_InitText(1,2); /Tell it to use text on screen 1, background number 2PA_OutputSimpleText(1,1,1,Hello World !); /Print the text on screen 1, with coordinate 1,1第1行用来初始化文字,载入字体到DS视频RAM中。没有它,输出的文字就象垃圾.会显示文字,但每个字母会是一个随机的图案.不太好:)PA_InitText 有2个参数:所用的屏幕(0表示DS机器的下屏,1表示上屏)和背景(0表示最上面的一层,1是下一层,2,3表示最下面的一层.)。PA_OutputSimpleText(1,1,1,”Hello World !”), 就象它的名字一样,如果背景用InitText初始化过,就在屏幕上输出简单的文字.(到这里,你可能知道所有PAlib函数开头都是PA_.)。这个函数有4个参数:1.屏幕(0-1)2.开始的水平位置,0-31。每一个位置是一个88像素的方块,因此第0块在第0个像素,每1块在第个8像素,等等.3.垂直位置,和水平位置一样4.文字.以开始和结束,C编译器靠这个来识别.当你理解之后,按F6来编译并在DualiS中运行,或按F7来编译并在DesmuMe中运行!按F5只编译不运行ROM(可以用来编译,再传到你的DS上.)问与答-安装和编译Q1.当我想编译一个例子,有以下错误:make is not recognized as an internal or external command, operable program or batch file.A1.我猜可能devkitPro没有安装好,或一些包(MSys)没有安装.试着重安一次。记住,安装需要设好环境变量。同时,如果你下载后移动了任何目录,也可能不工作出现错误。请安装在一个目录中(c:/devkitpro/ preferably)并且不要移动它。Q2.当我想编译一个例子,有以下错误:De

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论