首页 资讯中心 硬件周边 攻略中心 秘籍中心 在线动漫 CG壁纸  
专题栏目: PSP NDS GBA PS2 PS3 XBOX XBOX360 WII
PSP 游戏资料 | 玩家宝典
您的位置:游狐网 >> PSP >> 玩家宝典 >> 软件教程

菜鸟也能为PSP编程 - Lua Player 编程初级指南

[ 时间:2008-5-6 9:40:37 | 来源:电玩巴士 | 收藏本文 ] 【

2——编写你的第一个Lua程序

  现在我们开始为PSP编写自己的第一个Lua程序。请谨记我们在整个教程中都会利用到LuaPlayer的Windows版,虽然有些东西在windows版上不能很好运行(例如音频不是很好),甚或不能运行(例如LuaPlayer新增的一些函数),但是对于我们将要学习的东西来说,windows版还是足够使用的。

  LuaPlayer在PSP上的安装一般来说把LuaPlayer文件夹放在PSP/GAME目录下皆可。

  任何时候你想要在PSP上测试你的程序的话,只要把你的script.lua文件复制到EBOOT.PBP所在目录下,然后运行LuaPlayer即可。

  首先用文本编辑器打开你的script.lua文件。我们的第一个程序很简单,就是在屏幕上打印一些东西。让我们开始吧!

注释

  我们第一件要学的就是如何给你的代码做注释。注释是为了帮助其他人看懂你的代码。相信我,这也能帮助你自己。在你停止一个项目几个月后再回头看自己的代码,你会发现没有注释的话你会在自己的代码中迷失!所以我们的新程序第一行以下列注释开始:

代码:

-- 我的第一个 Lua 程序
-- 作者: 你的名字

  正如你看到的,注释以双划线开始( -- )。在此之后输入的任何文字都不会被视为代码,在执行时将被完全忽略掉。但是,请注意,你必须保持注释在一行内。如果你用回车到了下一行,请记住也要用双划线起头。参照我们上面给出的代码,你应该已经知道怎么做注释了。不难吧,是不是?

  译者注:多行注释以 --[[ 开头,]] 结尾。如下:

代码:

--[[
*********************************************
* 庐~山~升~龙~霸 *
* 天~马~流~星~拳 *
*********************************************
]]

创建一个色彩对象

  接下来我们将创建一个色彩对象,以便打印文字到屏幕上。我们将为此指定一个特定颜色然后用于print命令。将下面的代码加入到你的程序中,记得要另起一行。你也可以多空一行以便和上面的注释隔开。

  警告:Lua是区分大小写的,也就是说所有命令必须按照我们显示的大小写输入。例如下述代码中如果“Color”被打成“color”的话将无法运行。

代码:

red = Color.new(255, 0, 0)

  这样我们就创建了一个色彩对象。我们使用RGB值指定颜色,并将其存为一个变量red。你可以通过任何图像编辑程序获得任意颜色的RGB值。变量 red 储存了指定的色彩信息,但是这不意味着只要把它换成“blue”就会变成蓝色。变量名与其指代的颜色毫无关系。颜色来自RGB值。所以,你把red改成BigFatTurkey也没有关系。如果你还是不理解何谓变量,不用着急。我们很快就会专门学习它的。

打印至屏幕

  哈,到我们程序最精彩的部分了。我们将使用print命令打印一些文字到屏幕上。将下述代码复制到你的程序代码末尾。

代码:

screen:print(200, 100, "Look! I made text appear!", red)

  让我们对此解析一下。screen:print就是告诉我们的程序打印一些东西到屏幕上。在其后的括号里你看到有几个数值。这些值称为参数,每个函数所带的参数其个数和类型都不同。对于print来说我们调用了4个参数。

  它的语法结构: screen:print( x, y, stringOfText, colorObject)

  第一个参数,x,告诉程序在距离屏幕左侧多少像素的地方打印文字。

  第二个参数,y,告诉程序在距离屏幕顶端多少像素的地方打印文字。

  第三个参数,就是你打算让程序打印的文字。记得用引号把文字括起来。

  至于第四个...嘿,那就是我们早先创建的色彩对象red!这告诉程序使用红色打印文字,该色彩是我们先前创建的。记住在print语句使用颜色之前你必须先创建它!

离屏缓存转至显屏

  下述代码可能有点让人迷惑。但是别担心,即使你不完全理解它,也没什么关系。原样照抄到你代码的最后一行就是,象之前一样。

代码:

screen.flip()

  简单的说,所有的东西都是先在屏下绘制的,所以我们必须使用此命令让它显示到屏幕上面。

一个循环?

  没错,接下来我们要创建一个程序循环。它让一段代码循环执行直至某事让它停止。在本例中使用循环是为了让我们的程序不至于显示完文字就结束。没有这个循环的话,我们根本没机会看到文字,因为程序结束的太快了。下面是代码,我想你现在知道该放哪儿了吧。

代码:

while true do
screen.waitVblankStart()
end

  以后我们会深入探讨循环的。现在你只要知道它必须在那儿!

  到此我们的第一个程序完成!保存你的代码文件,双击script.cmd运行你的程序。如果一切顺利你应该在屏幕上看到你的红色文本了。