Тропа изображения при перемещении растрового изображения в Android - PullRequest
1 голос
/ 31 марта 2011

Я пытаюсь запрограммировать небольшую игру для Android, и когда я рисую растровое изображение и анимирую его с помощью спрайтов, я вижу след на изображении!(это изображение в формате PNG).Я знаю, что это не проблема спрайтов, потому что я использовал статическое изображение, движущееся вдоль оси X, и я все еще мог видеть след

trail of the animation

Это код, который я использовалчтобы загрузить изображение:

bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image);

Как я могу устранить его, чтобы каждый раз видеть только одного из спрайтов?

Заранее большое спасибо!

Ответы [ 3 ]

3 голосов
/ 31 марта 2011

Похоже, вам нужно очищать фон перед каждым рисованием спрайта.Вызов drawColor на вашем Canvas должен сделать что-то вроде

    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 голос
/ 31 марта 2011

Ну, это было очень глупо вместо

@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);
}

Большое спасибо за ответы, потому что я действительно не был уверен, почему все это нужно было сделать, поэтому вы оба очень помогли!

0 голосов
/ 31 марта 2011

Вы делаете это в SurfaceView или Canvas?

С SurfaceView Я считаю, что вы должны вручную очистить части чертежа, которые хотите удалить.

...