2013-01-19 82 views
0

好的繼承人問題我有我做了一個完全工作的遊戲,與菜單和幫助頁面得分生活水平,但我不能讓計時器工作,因爲它應該在第1我認爲它是一個if()但我跑了它會下降到齋戒。我已經使用android java(eclipse)做了遊戲,我會發布一些代碼,但是我不知道你想看到哪些位,現在我在java中的secs是milisecs,所以50000/1000 = 50secs但是我不知道該怎麼做,我看了幾個exmaple代碼,我不知道它是如何工作的。安卓倒數計時器的遊戲

定時器的標籤我做了出現在AVD,ATM它只是說,50000,沒有做任何事情

我嘗試做這種方式

公共類定時器擴展CountDownTimer {

 public timer(long timer, long Interval) { 

      super(timer, Interval); 
      // TODO Auto-generated constructor stub 
     } 

     @Override 
     public void onFinish() { 
      // TODO Auto-generated method stub 
      //canvas.drawText("GAME OVER", 200, 700, paint); 

     } 

     @Override 
     public void onTick(long millisUntilFinished) { 
      // TODO Auto-generated method stub 

      realtime = (int) millisUntilFinished; 

     } 

    } 
+0

後你已經嘗試什麼倒數計時器。 –

+1

*我現在在Java中secs是milisecs *我很抱歉,什麼? – m0skit0

+0

對不起有關語法,我的keybroad是有點老,廢話,一些按鍵工作的時間, –

回答

1

當遊戲開始時,保存系統時間並創建一個具有所需文本大小和顏色的新Paint實例。

startTime = System.currentTimeMillis(); 
    text = new Paint(); 
    text.setColor(Color.RED); 
    text.setTextSize(20); 

要將文本繪製到onDrow方法中的畫布/屏幕上,請執行下面的操作。

timeNow = System.currentTimeMillis(); 
    long timeToGo = 50 - (timeNow - startTime)/1000; 
    if (timeToGo >= 0) { 
     canvas.drawText(Long.toString(timeToGo), 10, 25, text); 
    } 

這將會把一個紅色的在屏幕的左上角,計數從50

+0

確定,但我需要它從50開始算起,並且精確地在屏幕上顯示它,50,49,48等,並且所有這些都將使用畫布在表面視圖上進行,而不是爲遊戲本身使用任何XML佈局,只是很難編碼 –

+0

感謝很多工作!!!!!!,你可以分解它,所以我知道發生了什麼 –

+0

知道如何獲得系統時間(System.currentTimeMillis)和工作了多少時間(timeNow -startTime)已經過去了是代碼的基礎。時間以毫秒爲單位,所以你需要除以1000,並計算出剩下多少時間,只需從50秒中減去多少秒即可。最後只需要在畫布上繪製文本即可,必須完成在onDraw方法中,並需要Paint實例來設置顏色和文本大小。最後,您需要知道如何在drawText調用中將time(int)轉換爲String。 –