2013-01-19 87 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。 –