След изображения при перемещении растрового изображения в Android

1

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

Изображение 174551

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

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

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

Спасибо вам заблаговременно!

Теги:
graphics
animation
sprite

3 ответа

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);
    }
  • 0
    Да, я сделал это!
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);
}

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

0

Выполняете ли вы это в SurfaceView или Canvas?

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню