0

我目前面临一个问题。

我创建了一个游戏,用户可以在一个关卡内比赛,并且有秒表来计算用户完成关卡的时间。

我使用此代码段将计数器转换为秒表

 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 秒

重要的是秒表必须在每个设备中同步,因为我有一个基于用户秒表结果的排行榜。

我该怎么做?

编辑:更新调用计时器方法

4

1 回答 1

0

你在哪里更新你的 m_timer 变量?我认为问题在于某些设备的 FPS 较低。

于 2013-11-06T12:37:02.227 回答