想要在游戏的主视图中显示时间吗?

发布于 2024-10-20 13:33:24 字数 494 浏览 4 评论 0原文

我目前正在为 Android 开发一个简单的游戏,其中主要操作发生在我的 GameView 类上,它只是 View 的扩展。

我想在 GameView 的左上角添加一些显示时间的文本,并且想知道实现此目的的最佳方法?

我使用下面的代码来显示

public void onTick(long millisUntilFinished) { TIME=(int) (millisUntilFinished/1000);

        timeCanvas.drawText("time= "+TIME, 30, 30, timePaint);

            invalidate();

    }

但无法正常显示。它覆盖每个计数增量。 还有其他方法可以显示时间吗?

我还使用了文本视图。但无法在此自定义 viewGive 解决方案或任何要显示的示例代码中将 TIME 设置为文本......

I am currently developing a simple game for Android where the main action occurs on my class GameView, which is simply an extension of View.

I want to add some text showing the time in the top left corner of my GameView, and would like to know the best way of implementing this?

I used foolowing code to display

public void onTick(long millisUntilFinished)
{
TIME=(int) (millisUntilFinished/1000);

        timeCanvas.drawText("time= "+TIME, 30, 30, timePaint);

            invalidate();

    }

But it cannot display properly. Its override every count increment.
Is there any other method to display time?

Also i used text view. but couldnt set TIME as text in this customized viewGive solution or any sample code to display....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情绪 2024-10-27 13:33:24

这篇文章可以帮助您

private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
   final long start = mStartTime;
   long millis = SystemClock.uptimeMillis() - start;
   int seconds = (int) (millis / 1000);
   int minutes = seconds / 60;
   seconds     = seconds % 60;

   if (seconds < 10) {
       mTimeLabel.setText("" + minutes + ":0" + seconds);
   } else {
       mTimeLabel.setText("" + minutes + ":" + seconds);            
   }

   mHandler.postAtTime(this,
           start + (((minutes * 60) + seconds + 1) * 1000));

}
};

开始

mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);

停止

mHandler.removeCallbacks(mUpdateTimeTask);

This article help you

private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
   final long start = mStartTime;
   long millis = SystemClock.uptimeMillis() - start;
   int seconds = (int) (millis / 1000);
   int minutes = seconds / 60;
   seconds     = seconds % 60;

   if (seconds < 10) {
       mTimeLabel.setText("" + minutes + ":0" + seconds);
   } else {
       mTimeLabel.setText("" + minutes + ":" + seconds);            
   }

   mHandler.postAtTime(this,
           start + (((minutes * 60) + seconds + 1) * 1000));

}
};

to start

mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);

to stop

mHandler.removeCallbacks(mUpdateTimeTask);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文