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

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

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

11——了解定时器

  本课我们将学习在程序中如何使用毫秒定时器。定时器可以在程序中派很多用处。通过定时器你可以使某些代码仅在一个正确的时间段内执行。

  下面这个小型的PSP程序将教您使用定时器,并显示讯息在屏幕上。显示的信息内容取决于计时器的时间。

  首先,让我们创建一个白色对象。

代码:

white = Color.new(255,255,255)

  为了创建一个定时器,我们使用命令 Timer.new()。 我们将此定时器存为一个变量。下面让我们创建一个定时器。

代码:

counter = Timer.new()

  要启动或停止一个定时器请使用命令 timername:start() 和 timername:stop()。我们想在程序开始启动我们的定时器,所以加上下面代码:

代码:

counter:start()

  请注意我们在命令中使用了刚才创建的定时器名字。 下一步,我们来创建我们程序的主循环,并添加每次循环清屏的代码。如下:

代码:

while true do
screen:clear()

  现在,在我们的程序中将需要与定时器的计时步伐保持一致。我们将利用定时器的当前时间显示信息到屏幕上。我们可以通过命令 countername:time() 得到定时器的当前时间。添加如下代码:

代码:

currentTime = counter:time()

  这会把定时器的当前时间保存到变量 currentTime 中。下面我们加入一些代码,在每次循环时将定时器的当前时间打印到屏幕上。代码如下:

代码:

screen:print(10,10,"Counter Time: " .. currentTime,white)

  现在,我们将使用一些 if 语句来判断我们的定时器是否在某个时间,若是则显示一则消息。先来加上第一项:

代码:

if currentTime < 1000 then
screen:print(100,100,"Less than 1000",white)
end

  这段代码是检查定时器的时间是否小于1000。如果是,则“Less than 1000”将打印到屏幕上。现在,让我们再加入一项。

代码:

if currentTime > 1000 and currentTime < 2000 then
screen:print(100,100,"Greater than 1000",white)
end

  这将检查定时器的时间是否比1000大,但小于2000。如果是,则“Greater than 1000”将被打印。最后的 if 语句将在时间超过2000时把我们的定时器复位回零。 我们可以使用 timername:reset(number) 命令重置定时器。

  括号内的数值是定时器将被设回的起始时间。复位定时器也将停止定时器,所以我们还要重新启动它。代码如下:

代码:

if currentTime > 2000 then
counter:reset(0)
counter:start()
end

  通过此代码,如果定时器时间超过2000,我们的定时器将复位回零并重新开始。最后,让我们结束我们的主循环。

代码:

screen.waitVblankStart()
screen.flip() end

  保存并运行你的程序,看看动起来的定时器吧。