开始想学习DX编程时,一个朋友介绍了这个网站。平时,在里面也学习了不少内容,自己经常听同事说起定时器。而自己第一次使用时,所设计的一个定时器,是问题多多。经过一些总结和思考,设计了一个新的定时器,拿出来和大家共享。也免了总是拿来,而不付出。:}
定时器,是一个应该来说游戏最基本常用的功能。它的易用与否,直接影响了开发的效率;功能的完备与否,直接导致实现的难易;性能的好坏,直接影响到了游戏的运行表现。那么,如何实现一个简单易用、功能完善、性能较好的定时器呢?
首先,先看功能的完善。
定时器,那么,第一点,我们希望他能有最基本的定时功能:指定一段时间以后,发生某个事件。
然后,如果所有事件都是一定时间以后发生,而,我们经常可能由于某个操作,会取消前面事件或无效前面的事件。比如:定时炸弹,一段时间以后会爆炸,在爆炸以前,是可以拆毁的。那么,就需要能取消或无效某个定时。
好,这就是一个最基本的定时器,能够设定时间,能够取消设定。就有如下接口:
setTime(int time,… 可能还不明确,改为:int timeEvent(int time,Event &e)
cancelTime(int timeID) 统一名字: void cancelEvent(int e)
但是,往往,我们很多游戏希望能暂停,然后,从暂停点继续。
void pauseTime()
void resumeTime()
怎么暂停,就有个游戏时间、系统时间(时间的获取,一般都是以系统时间为基础)了。
unsigned playTime()
unsigned sysTime()
功能上就有了:定时、取消、暂停、继续、查询。作为一般的游戏开发已经相对比较充分了。
再看,简单易用。