我正在制作一个Android游戏(只是为了学习一些东西)。您收集对象并为此获得积分。当玩家达到200点时,对象开始更快移动,背景发生变化等……就像下一个级别一样。但是当您达到那200点时,我想在屏幕上显示图像或文本(例如“ 2级”)大约2秒钟,但是我不知道如何。
我尝试使用计时器,但失败了。
我有一个“如果”声明
if (score >= 200) {
frameLayout.setBackgroundResource(R.drawable.lvl2); // background change
// Make objects go faster
collect_obj1 = Math.round(screenWidth / 57F);
collect_obj2 = Math.round(screenWidth / 33F);
critical_obj = Math.round(screenWidth / 42F); // If you hit this one = Game Over
characterLvl1.setImageResource(R.drawable.characterLvl2); // character change
}
答案 0 :(得分:0)
尝试一下:
long start_time = System.currentTimeMillis();
long current_time = System.currentTimeMillis();
long time_limit = 2000; // In milliseconds: this is the time you want to show the
// object(2 sec)
while(current_time - start_time) != 2000) {
ShowObject(); //Here is where you show the object.
current_time = System.currentTimeMillis();
}
HideObject(); //Hide the object after the while loop
应该可以。当然可以根据需要实现它,因为这不是有史以来最干净的代码。或者,如果您希望使用处理程序等来提高效率,请参见:
Link to another similar question on StackOverflow
编辑:使其变得更好一点。