Независимость разрешения в Android SurfaceView

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

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

9
задан Anirudha Gupta 17 November 2016 в 16:56
поделиться

2 ответа

Ты просто масштабируешь спрайты, когда загружаешь их. Полагаю, ты загружаешь их как Битмы из ресурса, так? Если это так, то все, что вам нужно сделать, это сделать что-то вроде этого:

BitmapFactory.Options options = new BitmapFactory.Options();
options.outHeight = spriteHeight * scale;
options.outWidth = spriteWidth * scale;

Bitmap sprite = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.sprite, options)

Где масштабирование основано на изменении размера экрана.

5
ответ дан 4 December 2019 в 23:40
поделиться

Существует два простых подхода:

первым:

на создании поверхностного представления, он вызывает:

onSizeChanged  (int w, int h, int oldw, int oldh)

Создайте несколько глобальных переменных, X & Y, так что если вы переопределите Это с:

onSizeChanged(int w, int h, int oldw, int oldh){
this.w=w;
this.h=h;
}

затем в любом рисунке или вычислениях игры вы можете использовать окно W и H.

Второе:

Вызов GetWidth () и GetHeight () в расчетах рисования и игр.

Удачи с вашей игрой!

1
ответ дан 4 December 2019 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: