2012-12-24 27 views
0

我有一个简单的问答游戏,它通过使用分数= 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(); 
+0

你能打印代码吗? – HMarioD

+0

@HMarioD更新了帖子。 – Alaminut

回答

0

问题是你必须在59次失误打折100点,然后每圈就要打折1点多了。我的建议是将计时器设置为600毫秒,然后在一分钟内完成100次。

+0

但是,如果我在600毫秒内设置计时器,我的分数开始变为负值。我想保持分数。分数必须在一分钟内从100分折扣,但我的显示器应该显示它每秒钟减少1分。我想我不明白你的建议。 :) – Alaminut

+0

你的分数是100 - 蜱 – HMarioD

+0

噢,是的,现在得到它。感谢您的解决方案! – Alaminut