我是Android新手,我不知道如何解决这个问题。
我正在制作类似Pong的游戏,并且在得分之后,我想在暂停游戏的同时显示得分几秒钟。 我正在使用像这样的onDraw()方法:
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(_bitmapStore.get(R.drawable.batblue),bluebat.getX() - (_bitmapStore.get(R.drawable.batblue).getWidth() /2),bluebat.getY(),null);
canvas.drawBitmap(_bitmapStore.get(R.drawable.ball),ball.getX() - (_bitmapStore.get(R.drawable.ball).getWidth() /2),ball.getY()-(_bitmapStore.get(R.drawable.ball).getHeight() /2), null);
canvas.drawBitmap(_bitmapStore.get(R.drawable.batred),redbat.getX() - (_bitmapStore.get(R.drawable.batred).getWidth() /2),redbat.getY(),null);
if(drawScore){
canvas.drawBitmap(_bitmapStore.get(R.drawable.user),200,200, null);
canvas.drawBitmap(_bitmapStore.get(R.drawable.cpu),400,200, null);
}
}
我想让它画出几秒的分数,但不知道如何暂停。 我尝试了thread.sleep()方法,即使我知道它不推荐。但除了放慢比赛之外,它没有做任何事情。
只有在得分后才会显示图像,但游戏会继续在其后面运行。
答案 0 :(得分:0)
我会将你的图纸从引擎中分离出来。如果您的引擎工作类似
for(Drawable d : engine.getComponentsToDraw()) d.draw(canvas);
你会基本上免费获得这个。显然这是抽象的:你可能有也可能没有Drawable接口。但这会让你在游戏中获得很大的力量。你没有一个变量来绘制得分,而是在列表中有一个对象(实际上可能是一个地图),它会在特定的时间后被添加和删除。