love2d教程21--定时器
2013-03-24 21:33
302 查看
转载:来自朱大仙,感谢他的博客,并让我发布。
hump.timer是一个很强大的模板.是一个老外写的.源博客请点这里
hump.timer是hump的系列之一.hump还有许多不为人知的功能.
英文好的或善于阅读网页翻译的同学可以去看源博客.
hump.timer提供了一个简单的安排时间的执行函数。可以在一些时间后运行功能。
例如,可以设置一个计时器,每5秒移动敌人一次或玩家在短时间类无敌。
模板名称
new()
如果你不需要多个独立的调试程序,您可以使用全局/默认计时器。
创建一个新的计时器实例,是独立的全局计时器:它将处理它自己的预定的函数列表,不影响其他计时器。同样,其他计时器也不影响全局定时器。
注意:定时器使用冒号符号(如。
参数: 没有
返回: 定时器 一个定时器实例。
示例:
注意:没有保证延迟将不超过,只有保证函数不会执行之前执行延迟已经过去了。--这个不懂
参数: number
返回:table定时器处理。
示例:
如果
参数: number
返回:table定时器处理。
示例:
注意:你不能添加新的计时器
参数: number
返回: table 定时器处理。
例子:
cancel(handle)
取消一个计时器的执行。
参数:table
返回: 没有什么
示例:
例子:
例子:
半山附注:
最后两个例子,意思是要在love.update(dt)里调用Timer.update(dt)来启动定时器,因为定时器通过dt来计时,
或者在hump.gamestate里调用self.timer:update(dt)启动定时器,其中gamestate是hump里的另一个库。
gamestate指游戏状态,由于它也要在love.update(dt)里调用,如果在gamestate里调用定时器,就相当于在
love.update(dt)里调用了定时器。
在游戏里定时器是很重要的一环,有了定时器可以很方便的实现与时间有关的特效。
hump.timer是一个很强大的模板.是一个老外写的.
hump.timer是hump的系列之一.hump还有许多不为人知的功能.
英文好的或善于阅读网页翻译的同学可以去看源博客.
hump.timer提供了一个简单的安排时间的执行函数。可以在一些时间后运行功能。
例如,可以设置一个计时器,每5秒移动敌人一次或玩家在短时间类无敌。
new() | 创建新的定时器对象 |
add() | 添加一个函数 |
addPeriodic() | 添加一个周期函数 |
do_for() | 在接下来的几秒运行一个函数 |
cancel() | 取消预定的函数 |
clear() | 删除所有的定时器和周期函数 |
update() | 更新预定函数 |
如果你不需要多个独立的调试程序,您可以使用全局/默认计时器。
创建一个新的计时器实例,是独立的全局计时器:它将处理它自己的预定的函数列表,不影响其他计时器。同样,其他计时器也不影响全局定时器。
注意:定时器使用冒号符号(如。
instance:update(dt)),而全局定时器使用一样(如。
Timer.update(dt)).
参数: 没有
返回: 定时器 一个定时器实例。
示例:
menuTimer=Timer.new()
add(delay,func)
安排一个函数func。这个函数会被在delay秒过去后执行,update(dt)被称为每一帧。
注意:没有保证延迟将不超过,只有保证函数不会执行之前执行延迟已经过去了。--这个不懂
func作为本身惟一参数。这是实用的实现周期性行为的方法。
参数: number
delay函数将被推迟的秒数。 function
func这个功能讲在推迟后执行。
返回:table定时器处理。
示例:
--让玩家在5秒里无敌
player.isInvincible=true--无敌
Timer.add(5,function()player.isInvincible=falseend)--5秒后取消无敌
--每隔5秒输出一次"foo"
Timer.add(1,function(func)print("foo")Timer.add(1,func)end)
--使用全局计算器
menuTimer:add(1,finishAnimation)
addPeriodic(delay,func)
添加一个函数,将每delay秒执行一次func。如果
count省略了,这个函数会被调用,直到它返回吗
false或
cancel(handle)或
clear()被称为。--不懂
参数: number
delay函数将被推迟的秒数。 function
func这个功能讲在推迟后执行。number
count(可选参数)被称为次数。
返回:table定时器处理。
示例:
--每一秒开关一下灯
Timer.addPeriodic(1,function()light:toggleLight()end)
--闪烁的球员的形象,只要他是无敌的.
Timer.addPeriodic(0.1,function()
player:flipImage()
returnplayer.isInvincible
end)
do_for(delay,func,after)
在接下来的delay秒运行func(dt)。函数每次调用
update(dt)被称为。随意地运行
after()一旦
delta秒已经过去了。--不懂
after()将收到本身作为惟一参数。
注意:你不能添加新的计时器
func(dt),因为这可能导致崩溃。
参数: number
delay函数将被推迟的秒数。 function
func功能要求
update(dt).
functionafter(可选)一个函数被称为三角洲秒之后。
返回: table 定时器处理。
例子:
--播放5秒动画
Timer.do_for(5,function(dt)flash:update(dt)end)
cancel(handle)
取消一个计时器的执行。
参数:table
handle这个功能被取消。
返回: 没有什么
示例:
functiontick()
print('tick...tock...')
end
handle=Timer.addPeriodic(1,tick)
--之后
Timer.cancel(handle)--而不是:Timer.cancel(tick)
clear()
删除所有的计时器和周期函数,功能尚未执行的将会被丢弃。例子:
Timer.clear()
menu_timer:clear()
update(dt)
在love.update(dt)使用这个,更新定时器.
例子:
functionlove.update(dt)
do_stuff()
Timer.update(dt)
end
functionmenuState:update(dt)
self.timer:update(dt)
end
半山附注:
最后两个例子,意思是要在love.update(dt)里调用Timer.update(dt)来启动定时器,因为定时器通过dt来计时,
或者在hump.gamestate里调用self.timer:update(dt)启动定时器,其中gamestate是hump里的另一个库。
gamestate指游戏状态,由于它也要在love.update(dt)里调用,如果在gamestate里调用定时器,就相当于在
love.update(dt)里调用了定时器。
在游戏里定时器是很重要的一环,有了定时器可以很方便的实现与时间有关的特效。
相关文章推荐
- love2d教程20--UDP网络连接
- love2d教程27--菜单
- love2d教程28--血条
- love2d教程19--背包
- love2d教程7--绘图顺序
- love2d教程13--图形界面
- Love2d新手入门教程之贪吃蛇(附源码)
- love2d教程11--着色器
- love2d教程18--物理引擎2
- lua & love2d 简单入门教程
- love2d教程1--最小的love2d程序
- love2d教程6--摄相机2边界和图层
- love2d教程19--背包修正
- love2d教程2--绘图和文字
- love2d教程8--动画
- love2d教程25--字符流水灯
- love2d教程34--thread模块
- love2d教程12--画布和批量绘图
- love2d教程32--碎图打包器texturepacker
- love2d教程29--保存运动轨迹