我目前面临一个问题。
我创建了一个游戏,用户可以在一个关卡内比赛,并且有秒表来计算用户完成关卡的时间。
我使用此代码段将计数器转换为秒表
void update(float dt)
{
if (!paused)
{
fcheckbutton+=dt;
ftimer+=dt;
if (ftimer >= 0.01f)
{
this->timer();
ftimer = 0.0f;
}
}
}
void timer()
{
m_timer++;
int milliseconds = m_timer%60;
int seconds = (m_timer/60)%60;
int minutes = m_timer/3600;
CCString * P1Time = CCString::createWithFormat("%02d:%02d:%02d", minutes,seconds,milliseconds);
m_label->setString(P1Time->getCString());
}
我在更新方法中调用了这个函数......
问题是在每台设备(iOS 和 Android)中,秒表都会产生各种结果......
在我的测试用例中,如果用户没有进行任何输入,他应该会在大约 32 秒内丢失....
iOS (iPhone 4) 是最接近的,秒表约 32 秒
但在 Android 设备中,结果各不相同。
谷歌 Nexus S 28 秒
新的谷歌 Nexus 7 18 秒
Galaxy Note 30 秒
重要的是秒表必须在每个设备中同步,因为我有一个基于用户秒表结果的排行榜。
我该怎么做?
编辑:更新调用计时器方法