Я в настоящее время запускаю игровой двигатель в Android, первом набеге в платформу и имею в распоряжении основы однако, я не уверен в лучшем способе приблизиться к независимости разрешения при использовании SurfaceView для рисования графики.
При поиске указателей относительно того, как сохранить игру / спрайты и т.д. все выглядеть одинаково независимый от экрана, очевидно, не было бы эффективно масштабировать все спрайты каждый кадр или сохранить много изменений для отличающихся разрешений
Ты просто масштабируешь спрайты, когда загружаешь их. Полагаю, ты загружаешь их как Битмы из ресурса, так? Если это так, то все, что вам нужно сделать, это сделать что-то вроде этого:
BitmapFactory.Options options = new BitmapFactory.Options();
options.outHeight = spriteHeight * scale;
options.outWidth = spriteWidth * scale;
Bitmap sprite = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.sprite, options)
Где масштабирование основано на изменении размера экрана.
Существует два простых подхода:
первым:
на создании поверхностного представления, он вызывает:
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 () в расчетах рисования и игр.
Удачи с вашей игрой!