Фон игры для Android - PullRequest
       16

Фон игры для Android

1 голос
/ 21 января 2012

Итак, я работаю над созданием игры для школьного проекта, и пока что все прошло хорошо, но я пытался использовать растровое изображение вместо того, чтобы просто использовать drawColor для фона, но это привело к замедлению игры , не реагировать на сенсорные события, и в конечном итоге вылетает через некоторое время. Вот мой код для создания того фона, который продолжает падать, я использую getColor перед drawBitmap, чтобы очистить предыдущий фон, потому что без этого движущиеся потоки символов оставляли «след» и не стирались после каждого движения .

    canvas.drawColor(Color.BLACK);
    canvas.drawBitmap
    (BitmapFactory.decodeResource(getResources(),R.drawable.park),0,0,null);

Так что был бы признателен любой более эффективный метод создания статического фонового изображения для перемещения потока!

Ответы [ 2 ]

3 голосов
/ 21 января 2012

Что вы делаете, так это то, что вы загружаете свое растровое изображение при каждом рендеринге, поэтому оно работает медленно и через некоторое время вылетает из-за ограничений памяти. Вы должны загрузить свое изображение один раз, когда вы все инициализируете:

// run once when you start the game
Bitmap background = BitmapFactory.decodeResource(getResources(),R.drawable.park);

В вашем коде рендеринга:

canvas.drawBitmap(background);

И не забудьте освободить изображение, когда закончите с ним:

background.recycle();
0 голосов
/ 21 января 2012

Причина, по которой ваше приложение замедляется, заключается в том, что вы храните слишком много ссылок на одно и то же растровое изображение, и это потребляет объем доступной памяти, вам нужно освобождать изображения так, как они вам не нужны.Там куча видео от Romain Guy на графику и игровую графику.Посмотрите на YouTube, и вы узнаете, как справиться с этой проблемой.

...