我使用秒表知道某些操作为点(游戏)系统运行了多长时间。
我这样定义:
byte[] decodedString = Base64.decode(pureImageSrc, Base64.URL_SAFE);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
imageView.setImageBitmap(decodedByte);
tocke和glavnetocke是积分。
然后在"构建"我需要这样做:
java.lang.IllegalArgumentException: bad base-64
如果我不做10000次线程睡眠,它就不会工作。
稍后在事件处理程序中我使用它:
Stopwatch sekunde = new Stopwatch();
long tocke;
long glavnetocke;
long cas;
观察者是绘制站在摄像机前的人的身体。 如果我将thread.sleep留给10000它将起作用,否则它将不起作用。但我需要这个消失,因为它会停止整个程序。即使只有在我按下表格中的按钮后才发生这种情况,我需要等待10秒,然后再开始。考虑只是添加加载屏幕,但它不起作用,因为它冻结整个程序,所以它没有显示加载gif。
编辑:
好吧,你可以看到" tocke = tocke +((cas / 10)); 如果我删除thread.sleep甚至降低睡眠数量,则tocke始终为0。秒表需要时间来初始化还是什么? 我想知道操作运行多长时间到一个长类型变量的时间,然后我可以用它来计算游戏点数。 (cas =(long)sekunde.Elapsed.TotalSeconds;)
答案 0 :(得分:1)
通过将TotalSeconds
作为long
进行投射,您正在切断小部分。我使用double
重做了您的示例,它似乎对我有用:
Stopwatch sekunde = new Stopwatch();
long glavnetocke = 0;
double cas;
double tocke = 0;
sekunde.Start();
sekunde.Stop();
cas = sekunde.Elapsed.TotalSeconds;
tocke = tocke + ((cas / 10));
if (tocke > 200)
{
glavnetocke = glavnetocke + 1;
tocke = 0;
}
结果
cas = 0.0000015
(根据我的设置)