关于倒计时的显示问题
2013-07-15 21:44
204 查看
在很多游戏中,倒计时算是很常见的功能,但倒计时这块功能却并不是那么简单,有很多细节需要注意。
下面我来说下倒计时功能的简单实现方法:
为了显示倒计时函数我们需要知道 系统时间,根据增加的系统时间去判定剩余时间(有些游戏会根针数去判定倒计时,这样会导致不同配置的电脑玩有不同的效果,这种做法是很不推荐的,但也有一些游戏用针数做判定,比如武林群侠传的 钓鱼系统 和 打猎好像也是)。
比如我要写一个隔段时间领取奖励的类:
class Reward{
public:
Reward();//这里假设所有的初始化都已经在里面进行了
~Reward();//假设这里不会有内存泄露
void drawTime()
{
int coolTime = m_finishTime - getSystemTime() /*假设一个获得系统当前时间的函数*/;
coolTime = Max(coolTime , 0);//保证冷却时间大于0
m_pLabel->setText( pConvertFunc( coolTime ).c_str() );
}
void resetCoolTime()
{
finishTime = 20 + getSystemTime();
}
typedef std::string (*pConvert)(int time);//将时间转换成字符串形式的函数指针类型
pConvert pConvertFunc;
private:
cocos2d::CCLabelTTF *m_pLabel ;//显示时间的控件这里 借用cocos2d 里的标签控件
int m_finishTime;//保存的是完成的时间 这个时间等于 冷却时间+领取时的系统时间
static int const CoolTime = 20;
};
当然还要有一个每针或 间隔一段时间去调用它的函数
在cocos2d 里可以使用schedule 或 Callfunc_XX 。
。在这里我是保存完成时间而不是直接保存冷却时间了,这样做的好处就是无论你间隔多少秒去调用void drawTime() ,倒计时的计算都不会有错误。
下面我来说下倒计时功能的简单实现方法:
为了显示倒计时函数我们需要知道 系统时间,根据增加的系统时间去判定剩余时间(有些游戏会根针数去判定倒计时,这样会导致不同配置的电脑玩有不同的效果,这种做法是很不推荐的,但也有一些游戏用针数做判定,比如武林群侠传的 钓鱼系统 和 打猎好像也是)。
比如我要写一个隔段时间领取奖励的类:
class Reward{
public:
Reward();//这里假设所有的初始化都已经在里面进行了
~Reward();//假设这里不会有内存泄露
void drawTime()
{
int coolTime = m_finishTime - getSystemTime() /*假设一个获得系统当前时间的函数*/;
coolTime = Max(coolTime , 0);//保证冷却时间大于0
m_pLabel->setText( pConvertFunc( coolTime ).c_str() );
}
void resetCoolTime()
{
finishTime = 20 + getSystemTime();
}
typedef std::string (*pConvert)(int time);//将时间转换成字符串形式的函数指针类型
pConvert pConvertFunc;
private:
cocos2d::CCLabelTTF *m_pLabel ;//显示时间的控件这里 借用cocos2d 里的标签控件
int m_finishTime;//保存的是完成的时间 这个时间等于 冷却时间+领取时的系统时间
static int const CoolTime = 20;
};
当然还要有一个每针或 间隔一段时间去调用它的函数
在cocos2d 里可以使用schedule 或 Callfunc_XX 。
。在这里我是保存完成时间而不是直接保存冷却时间了,这样做的好处就是无论你间隔多少秒去调用void drawTime() ,倒计时的计算都不会有错误。
相关文章推荐
- 求助:关于后台获取时间,前台显示倒计时的问题
- 关于ExtJS TabPanel中column布局不显示问题
- [ATL/WTL]_[初级]_[关于graphics.DrawImage绘图时显示不正常的问题]
- 关于oracle中纵向记录横向显示的问题举例说明
- 关于ffplay不能在VMware虚拟机的centos6.5显示的问题
- 关于键盘出现与隐藏时调整UITextField的显示位置问题
- 关于文章列表如何直接显示文章类别名的问题
- 关于MSChartX轴显示时间的问题
- 关于web.xml中配置404错误跳转页面 在ie不能显示自定义错误页面的问题
- 关于dg,备库日志已经应用,但主库依旧显示applied=no问题的处理
- 关于字体图标在firefox上本地访问无法显示的问题分析
- 关于uiimagepicker拍照与录像按钮是否显示问题
- 关于WORD 中不能显示绘图工具画的线的问题
- 关于系统托盘图标(systemtray)无法显示问题的解决
- 关于在laravel项目中验证码不显示的问题
- 关于OA系统ie8上传附件无法正常显示的问题
- 关于Android ImageView 图片显示的几个问题
- 关于Qt中QLable显示图片的问题
- 关于ubuntu系统启动时显示.dmrc权限不正确的问题的解决
- 关于JFreeChart横向柱状图如何将数值显示到柱子顶端的问题