2012-12-24 28 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