【LG006.精灵传说】我是定时器
【LG006.精灵传说】我是定时器
本章来聊聊精灵传说之我是定时器~
木头惯例,先上图:
实现的效果就是一个精灵不断地在跑,不断地跑?你想累死她吗?~
所以,当然要让她休息一下喇~于是...
她每隔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函数里(这个是官方文档里举的一个例子)。
好吧,啰嗦完了~
源码下载:请移步Android-Fans论坛
原文第一次发布于Android-Fans论坛:
http://www.android-fans.net/forum.php?mod=viewthread&tid=1525&page=1&extra=#pid4524
【LG006.精灵传说】我是定时器相关推荐
- 【LGame入门学堂006.精灵传说】我是定时器
[LG006.精灵传说]我是定时器 关键字:LGame 入门 定时器 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://blog.csdn.net/musicvs/arti ...
- 【LGame入门学堂005.精灵传说】简单的精灵
[LGame学堂]简单的精灵 关键字:LGame 入门 精灵 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://blog.csdn.net/musicvs/article/ ...
- 【LG005.精灵传说】简单的精灵
[LGame学堂]简单的精灵 效果图: 精灵,按照个人的理解,就是游戏中的生物,生物嘛,当然是要能懂的.跑来跑去的主角是精灵,和主角打架的怪物也是精灵~还有好多好多精灵,好吧,精灵不神秘,它也不过是一 ...
- Battle Mages (魔法之战,精灵传说)修改器
最近很忙,没有更新,程序也没写,只是玩了一块这个游戏,顺便改了改,写在下面,有兴趣的朋友可以写修改器. 一.金钱 1.汇编 将ECX修改为所需要数值 005D99E0.005DAA95两处 MOV [ ...
- 天猫精灵python开发_天猫精灵X1智能音箱使用感想
11.22音箱到手,等了刚好一个月. 一.测评语音交互功能 测试条件:正宗普通话. 1)问天气.气温:表现良好. 2)找手机功能:试了多次,每次都说手机号码格式不对.有那时间我自己找了. 3)小孩听故 ...
- js的继承,我是搬运工
主要是搬运的这个大佬的 js 继承 这个搬运的 原型.构造函数.实例 他说的第一个是原型链继承: 先谈了原型.构造函数和实例以及三者之间的关系 1.原型 (prototype):一个简单的对象,用于 ...
- Cocos2d-x3.X入门游戏实例(一) 经典飞机大战开发笔记
有一个多月没有写学习笔记了,主要是在学习了一段时间后觉得想整个小游戏,选来选去选择了微信飞机大战作为处女作.飞机大战内容简单,比较适合刚学习Cocos2dx的新手拿来练手,而且网上的教程和源码都很多, ...
- 第一节: Timer的定时任务的复习、Quartz.Net的入门使用、Aop思想的体现
一. 前奏-Timer类实现定时任务 在没有引入第三方开源的定时调度框架之前,我们处理一些简单的定时任务同时都是使用Timer类, DotNet中的Timer类有三个,分别位于不同的命名空间下,分别是 ...
- JS的组成-JS数组方法-JS函数-系统化学习
JS Day01 什么是js的组成? ECMAScript(es) 其实就是js的规范(规则) DOM 文档对象模型 div span BOM 浏览器对象模型 JS的使用方式 行内样式的书写(不经常使 ...
最新文章
- 延迟加载算法微服务的模型
- python视频教学视频哪个好-Python入门视频看哪个好?适合初学者的教学视频推荐...
- 2020-12-28 Matlab自动化控制-Adrc自抗扰控制
- 小学 n 阶乘的后面包含多少零c语言,C语言---求n的阶乘后面有多少个连续的0
- java排序-交换排序-快速排序
- 10.13 上午 考试
- tf 矩阵行和列交换_tf.transpose函数的用法讲解
- 自学python能学成吗-自学Python能学会吗 零基础怎么学
- java 读取excel wps_安装WPS引发的excel上传问题
- 在Adobe Html5 Extension的使用Nodejs的问题
- postifx网络服务的搭建和配置
- vuex模块化 怎么引用state_vue 组件如何调用 vuex 模块中的getters
- SpringBoot中的文件读取
- 流加密,一次性密码本的原理,简介,事例以及攻击方式
- C语言,进制转换之十六进制转二进制,完整代码
- 联想服务器重装系统快捷键,联想电脑重装系统按什么快捷键
- php7 yar扩展,php扩展之Yar使用
- IE6中常见兼容性问题及浏览器显示难题
- 微信企业号突飞猛进,移步到微为何坐稳移动审批头把交椅
- arthas-dashboard
热门文章
- 如果你知道兔兔吃这些,还会觉得ta可爱吗
- 用操作系统创新解决卡脖子问题,欧瑞博要加速全屋智能的马太效应
- Excel技能总结(WPS)
- html表格文字横向显示,excel表格中如何将竖向文字变成横向的?:代码转换文字...
- 苹果iPhone14怎么领取淘宝天猫优惠券购买iPhone苹果14钢化膜手机壳?
- sql查询:查询药品的信息和被收藏的次数
- 【RabbitMQ】RabbitMQ架构模型
- WOJ 1037 邮票 Stamps
- php添加超链接到html,总结几种实现超链接html代码
- 会员系统 java源码_推荐会员管理系统JAVA源码