Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 基于已用秒数计算用户分数_Flash_Actionscript - Fatal编程技术网

Flash 基于已用秒数计算用户分数

Flash 基于已用秒数计算用户分数,flash,actionscript,Flash,Actionscript,我有一个简单的问答游戏,它使用score=100-((100*answerTime)/60)计算用户的分数;公式 当我用计时器在屏幕上显示用户的分数时,它会像 100,99,97 有没有一种方法可以更平滑地向用户显示此分数?像100、99、98,我在网上搜索过,但我找到的最接近的答案是用于flash动画的bézier曲线算法 下面是示例代码: private function TimerHandler(e:TimerEvent):void { var ticks:int

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

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

有没有一种方法可以更平滑地向用户显示此分数?像100、99、98,我在网上搜索过,但我找到的最接近的答案是用于flash动画的bézier曲线算法

下面是示例代码:

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();

问题是你必须在59次失误中扣100分,然后每圈必须扣1分以上。我的建议是将计时器设置为600毫秒,那么你将在一分钟内失误100次。

@HMarioD更新了帖子。但如果我将计时器设置为600毫秒,我的分数将开始出现负值。我想保持现状。分数必须在一分钟内从100分打折,但我的显示器应该显示为每秒减少1分。我想我不明白你的建议哦,是的,现在知道了。谢谢你的解决方案!