设想一下,你正在玩一款RPG游戏,在河中被BOSS追*,还有2分钟BOSS就追上你,屏幕显示倒计时,你必须拼尽全力在2分钟内游到岸上……好了,让我们回到现实中来,如何实现计时效果呢?我来给大家详细介绍。
首先我们定义一个计时器类gxsTimer,用于游戏中的计时操作,代码如下:
isTimeOut()成员函数用来判断上次计时开始时段到现在是否超出指定的时间间隔,如超出则返回true,否则返回false;
我们应该在什么地方调用计时器的init()成员函数呢?答案是在g_oGameObj对象的initGame()成员函数中,代码如下:
现在我们要实现计时效果,就需要不停地调用g_oTimer对象的timeElapse()成员函数,代码如下:
在哪里调用这个成员函数呢?很明显是在一个反复执行的函数内调用,g_oGameObj对象的drawScene()成员函数是个不错的选择,代码如下:
计时器已经实现了,那么我们如何将时间数字显示出来呢?还记不记得我们的gxsSprite类?我们可以用它的一个派生类gxsTimeSprite来实现,看代码
再来看一看draw()函数代码
我们用一个变量st保存要绘制的时间数字图片名,实际只保存了后一位,在显示将通过代码在它前面添加字符"c",以计时时间12:23分例,st中保存的结果为“12a23”,显示时,首先显示一个闹钟图标,再依次显示每一个数字。最后还要修改g_aSpritePara变量,添加g_oTimerSprite对象,让时间图片精灵对象初始化,代码如下:
最后将今天讲的内容录了视频,文章中没有讲到的地方大家可以看视频。
未完待续,敬请关注!后续更精彩,谢谢大家!
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved