【LG006.精灵传说】我是定时器
关键字:LGame 入门 定时器
笨木头花心贡献,啥?花心?不呢,是用心~
转载请注明,原文地址:http://blog.csdn.net/musicvs/article/details/7530117
本章来聊聊精灵传说之我是定时器~
木头惯例,先上图:
实现的效果就是一个精灵不断地在跑,不断地跑?你想累死她吗?~
所以,当然要让她休息一下喇~于是...
她每隔2秒钟休息一次...太懒了点吧...
说了这么多,先上代码,再听我解释,主要要解释两样东西:
1. LGame的定时器,LTimer类
2. 钩子函数
代码里有一个LMessage控件,关于它的所有操作,请大家忽略,不要被影响了,它不是本文的研究对象,以后学到控件的时候再一起探讨~
1.定时器。
创建定时器很简单:
LTimer restTimer = new LTimer(2000);
这样就创建了一个每隔两秒执行一次的定时器。
有一点一定要注意,定时器什么时候开始启动?当然是由我们来控制喇。
这样启动: resTimer.start();
OK,很简单吧?
啰嗦一下:
虽说LTimer是定时器,但是它实际上是不会定做执行任务的。
说得实在一点,它只是一个计时器,唯一能做的就是,告诉你是否到时间了。
比如我们在早上8点50分40秒的时候启动了上面创建的定时器,在8点50分42秒或之后,你再去问问这个定时器,它就是告诉你,时间已经到了。
怎么去问它时间到了没呢?
很简单,这样:restTimer.action(现在的时间);
至于现在的时间怎么获得?不是本文讨论的范围咯,其实你可以从代码中发现的~
2.钩子函数。
糟糕,什么是钩子函数?怎么听起来这么复杂~
不怕,你遇到高手了~我写毕业论文的时候有研究了一下下钩子函数的~
专业的解答,请百度一下,小弟只是通俗地说一下~
钩子,顾名思义,就是钩住你,是你身体以外的东西~
比如,一个钩子钩住你的手,那么,你的手抬起来的时候,这个钩子也被抬起来了~
明白了?~好吧,再来~
钩子函数,其实就是一个空函数,比如:
public void onCreate() {
init();
showScreen();
hook(); // 我是钩子
}
这个onCreate函数每次执行的时候都会调用一个hook()函数,其实这个函数什么都没做,这个函数是用来被重写的~
呐,现在明白了吧?~我们只要重写hook函数,就能在onCreate函数执行的时候做一些我们想做的事情~
啰嗦一下:
那,那有没有人想问我,为什么不直接重写onCreate函数:
public void onCreate() {
super.onCreate();
// 在这里做我们想做的事情
}
个人理解的话,这样做有危险,万一有些人,他就是不调用super.onCreate()怎么办?
那样我本身onCreate函数需要做事情就没有完成,这样就会造成程序出问题。
而使用钩子的话,onCreate函数本身要完成的事情一定会被执行的,所以不会出现上面提到的问题~
OK~应该大家都明白了~
3.LGame的Screen的alter函数。
啥?~怎么跑出3来了?·不是只有2个么?~好吧,不管你~
个人理解,alter函数就是一个钩子,每次刷新操作(不太确切,反正就当做是线程每次执行的时候)的时候就会被调用,具体怎么被调用我是不会告诉你的~(因为我自己都没有去研究~嘿嘿)。
我们可以把判断定时器是否到时间的操作放在alter函数里(这个是官方文档里举的一个例子)。
好吧,啰嗦完了~
源码下载:http://download.csdn.net/detail/musicvs/4289619
原文第一次发布于Android-Fans论坛:
http://www.android-fans.net/forum.php?mod=viewthread&tid=1525&page=1&extra=#pid4524
分享到:
相关推荐
【LGame学堂006.精灵传说】我是定时器 源码 文章地址: http://blog.csdn.net/musicvs/article/details/7534424
【LGame学堂005.精灵传说】简单的精灵 源码 文章地址: http://blog.csdn.net/musicvs/article/details/7530136
【LGame学堂004.资源传说】 加载资源的方式 源码下载 文章地址: http://blog.csdn.net/musicvs/article/details/7530129
【LGame学堂008.控件篇】简单控件之LButton 源码 文章地址: http://blog.csdn.net/musicvs/article/details/7542125
【LGame学堂003.第三章】 HelloWorld之绘制文本 附件下载 文章地址: http://blog.csdn.net/musicvs/article/details/7530123
【LGame入门学堂002】HelloWorld之搭建环境 教程的附件下载。 文章地址: http://blog.csdn.net/musicvs/article/details/7530117
Android and J2SE Game Engine
LGame-0.3.zip
Java(Android)游戏开发框架LGame-0.2.7发布
LGame是一款国人开发的Java游戏引擎,有Android及PC(J2SE)两个开发版本(测试版添加了C#开发版本)。该引擎除了基本的音效、图形、物理、精灵等常用组件以外,也内置有Ioc、xml、http等常用Java组件的封装,该引擎还...
LGame目前版本虽然基于标准OpenGLES API开发,但项目0.1版最早脱胎于AWT Java2D时代,所以采用了AWT Graphics2D的坐标系(画布左上角为原点(x=0,y=0),Y轴向下为正值,与JavaFx或Android,JavaScript的Canvas渲染坐标一致...
安卓LGame编程详解,初学者的最好的指导资料
Android游戏开发框架LGame-Android
TD2.3(android塔防游戏,运用了国内的开源游戏引擎LGame).rar
LGame-LGame-0.5-Beta-fix1
android下的游戏框架LGame的一些游戏实例,包括各种类型游戏,简单易懂!
LGame源码part4
在官网找到呢,很有用的android游戏开发包
同时也是是一个高通用性的游戏框架,作为支持Java桌面游戏以及网页游戏开发的全功能引擎,LGame无论对画面绘制、精灵碰撞、特效渲染、窗体组件,还是XML操作,文本数据库操作,HTTP操作,日志操作等都提供有完善的...
源码参考,欢迎下载