0

我有一个简单的问答游戏,它通过使用 score = 100 - ((100*answerTime)/60); 计算用户的分数;公式。

当我用计时器在屏幕上显示用户的分数时,它会显示为 100、99、97...

有没有办法更流畅地向用户显示这个分数?像 100, 99, 98 我在网上搜索过,但最接近的答案是用于 Flash 动画的贝塞尔曲线算法。

下面是示例代码:

private function TimerHandler(e:TimerEvent):void
    {
        var ticks:int = e.target.currentCount;
        var score:int = CalculateScore(ticks);
        trace("Elapsed time: " + ticks + ", score: " + score);

        if(ticks == 59)
        {
            trace("Time out! User got 0 points on this question");
            e.target.stop();
        }
    }

private function CalculateScore(answerTime:uint):int
{
    return 100 - ((100*answerTime)/60);
}

在构造函数中:

var tmr:Timer = new Timer(1000);
tmr.addEventListener(TimerEvent.TIMER,TimerHandler);
tmr.start();
4

1 回答 1

0

问题是您必须在 59 次失误中折扣 100 分,然后每圈必须折扣超过 1 分。我的建议是将计时器设置为 600 毫秒,然后您将在一分钟内走完 100 次。

于 2012-12-24T15:43:25.643 回答