【LGame入门学堂006.精灵传说】我是定时器

【LG006.精灵传说】我是定时器

 

关键字:LGame 入门 定时器

笨木头花心贡献,啥?花心?不呢,是用心~

转载请注明,原文地址:http://blog.csdn.net/musicvs/article/details/7530117

 

 


章来聊聊精灵传说之我是定时器~

木头惯例,先上图:

【LGame入门学堂006.精灵传说】我是定时器_第1张图片

【LGame入门学堂006.精灵传说】我是定时器_第2张图片

现的效果就是一个精灵不断地在跑,不断地跑?你想累死她吗?~
所以,当然要让她休息一下喇~于是...
她每隔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

 

 

 


 

你可能感兴趣的:(百度,文档,任务,hook)