Я делаю простую 2d-игру в Android. Однако, даже с несколькими изображениями на экране, я сталкиваюсь с проблемами с fps (около 15-25 и довольно stuttery).Как эффективно отображать изображения в Android
В настоящее время я использую холст и просто настраиваю изображение каждого кадра со всем, что мне нужно для отображения на нем.
Вот некоторые из моих визуализации кода:
public void render(Painter g) {
g.setColor(Color.rgb(208, 244, 247));
g.fillRect(0, 0, GameMainActivity.GAME_WIDTH, GameMainActivity.GAME_HEIGHT);
g.setColor(Color.rgb(139,69,19));
g.fillRect(0, 1400, GameMainActivity.GAME_WIDTH, GameMainActivity.GAME_HEIGHT - 1400);
g.drawImage(Assets.background3stone, currentBackground3X, 141);
g.drawImage(Assets.background3stone, currentBackground3X + 3459, 141);
g.drawImage(Assets.background2stone, currentBackground2X, 141);
g.drawImage(Assets.background2stone, currentBackground2X + 3459, 141);
g.drawImage(Assets.ground, currentBackground1X, 760);
g.drawImage(Assets.ground, currentBackground1X + 3000, 760);
renderNews(g);
renderButtons(g);
g.drawImage(Assets.leaderboard, 40, 180, 148, 148);
g.drawImage(Assets.achievements, 40, 354, 148, 148);
g.drawString("FPS: " + frameValue, 50, 200);
}
Этот код выполняется для каждой итерации цикла игры.
Кто-нибудь знает какие-либо способы оптимизации моей работы? В настоящее время я перерисовываю буквально все кадры, есть ли способ не перерисовывать статические изображения? Переключение на openGl поможет?
Спасибо!
Я слышал, что opengl действительно запутывает, чтобы переключиться на. Это правда? Если да, то может ли libgdx упростить переход? – mongy910