if(pauseGame){
if(update){
update = false;
My_static_draw();
}else{
try {
Thread.sleep(160);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}else{
My_Game_draw(); //its load CPU
}
当我pauseGame = true;
时work(load CPU ~0%)
,但我在显示屏上看到一些奇怪的内容,更改了两个(或更多)图片,图片1在My_static_draw()
中绘制,还有一些最后一张图片在My_Game_draw();
答案 0 :(得分:1)
我猜你在调用答案中包含的代码之前正在调用Surface.lockCanvas()
。如果这样做,则必须重绘整个脏区域(默认情况下,整个屏幕都是如此)。
您在之前的帧中循环,因为SurfaceView是双缓冲或三缓冲。如果您锁定并解锁而不绘制任何内容,则只需重新提交先前绘制的缓冲区。
如果您无需绘制任何内容,则可以通过不调用lockCanvas()
/ unlockCanvasAndPost()
来解决此问题。