我正在尝试为Android编写一个小游戏,当我绘制位图并使用Sprites制作动画时,我可以在图像中看到一条线索! (这是一张PNG图片)。 我知道它不是精灵的问题,因为我使用了沿X轴移动的静态图像,我仍然可以看到踪迹
这是我用来加载图片的代码:
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image);
我怎样才能消除它,所以我每次只能看到一个精灵?
非常感谢你!
答案 0 :(得分:3)
看起来你需要在每次绘制精灵之前清除背景。在你的画布上调用drawColor应该这样做,比如
Canvas c = null;
try {
c = surfaceHolder.lockCanvas(null);
synchronized(surfaceHolder) {
c.drawColor(Color.BLACK);
c.draw(bmp, posX, posY, null);
}
} finally {
if(c != null)
surfaceHolder.unlockCanvasAndPost(c);
}
答案 1 :(得分:1)
嗯,这是一个非常愚蠢的事情: 而不是
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(***Color.BLACK***);
sprite.onDraw(canvas);
}
我做了
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(***color.black***);
sprite.onDraw(canvas);
}
非常感谢答案,因为我真的不确定为什么要做所有这些,所以你们两个人实际上都帮了很多!
答案 2 :(得分:0)
您是在SurfaceView
还是Canvas
?
使用SurfaceView
我相信您必须手动清除要消失的部分图形。