如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
LuaPlayer指南前提条件你应该对lua编程语言的基础有所了解,这个网址下面就有一些比较不错的Lua的教程http://lua-users.org/wiki/TutorialDirectory.而LuaIDE在纯的Lua环境下对你实验很有帮助,在那里你可以键入一些程序并且一步一步的运行,来观察其中的变量是如何改变的.还有一种方式就是下载windows版本的Lua(lua.exe),以命令行的方式来启动lua.exe,然后在里面输入Lua表达式,比如像”fori=1,10doio.write(i..”\n”)end”.HelloWorld首先按照readme文件中描述的步骤安装LuaPlayer.完成之后让我们从一个简单的脚本开始吧:--createanewColorobjectgreen=Color.new(0,255,0)--showsometextonoffscreenscreen:print(200,100,"HelloWorld!",green)--flipvisibleandoffscreenscreen.flip()--waitforeveverwhiletruedoscreen.waitVblankStart()end把上面这些内容输入到文本文档中,并以”script.lua”作为他的文件名,把它放到你的记忆棒用来存放EBOOT.PBP的同一个目录中.当你启动Luaplayer之后,你的可爱的psp屏幕上应该可以看到这个枯燥的图片:psp的屏幕的分辨率是480*272(单位像素)的.”Color.new”这条语句建立了一个新的颜色对象.参数分别是red,green,blue和alpha(可选),每一个参数的变化范围都是从0到255.这其实就是RGB颜色模型."screen:print"这条语句在屏幕上显示出了一些文本,其中前两个参数是要显示的文本在屏幕中的位置x,y坐标值,这两个参数后面紧接着要显示的文本和一个可选的颜色参数(默认是黑色).坐标值x是从屏幕的左边开始的,坐标值y是从屏幕顶端往下增长的.这里我们使用了两个屏幕缓冲:一个离屏缓冲和一个可视缓冲。所有的绘图函数都是作用在离屏缓冲上的。这就意味着直到调用了screen.flip(),离屏缓冲和可视缓冲才能互相交换,从而显示出你要显示出的文字来。这其实就是所谓的双缓冲技术。这种技术是通过一种叫做page-flipping(翻页技术)来实现的,这就是问什么它的名字叫做“flip“啦。在最后的那个while循环中无限的调用了waitVblankStart这个函数。如果你不以类似这样的方式结尾的话,当你的脚本结束时,你将不会看到你所想要看到的结果,因为你如果从Lowser中启动它的话你看到的将是Lowser的图形界面,如果把它作为一个单独的脚本来运行的话你看到将是屏幕上显示是否还要重新运行一遍的提示。如果你只是用一个空循环而没有用那些等待函数的话,这将会占用大量的cpu资源。动画理解存储在内存中的像素是如何显示在屏幕上的对于编写游戏是非常重要的。许多显示设备包括psp的显示原理,其实都和老式的阴极射线管的原理相类似。一条光线从屏幕的左上端开始一条线一条线往下扫描。在最底部时这条光要返回左上端时要花费一些时间而这段时间就叫做垂直空白(vblank),这是因为在扫描线在返回起始扫描位置时它是处在非激活状态的。当然了,在psp中其实并没有这条扫描线。但是你可以就认为它是这么工作的。当执行”screen.waitVblankStart()”后,脚本将会等待到这次vblank的开始.在vblank期间将不会显示任何像素点,这就给了我们时间来进行离屏和显示屏之间的切换,从而避免了屏幕闪烁。下面让我们看看通过同步的页面切换来实现的动画是个什么样的吧:System.usbDiskModeActivate()green=Color.new(0,255,0)time=0pi=math.atan(1)*4whiletruedoscreen:clear()x=math.sin(pi*2/360*time)*150+192.5screen:print(x,100,"HelloWorld!",green)time=time+1iftime>=360thentime=0endscreen.waitVblankStart()screen.flip()pad=Controls.read()ifpad:start()thenbreakendend在while循环当中,首先对离屏进行清屏,然后在离屏上面写上一些文字,然后脚本等待vblank的开始,之后在交换可见屏和离屏