Я только что написал «Игру жизни Конвея» на Java и хотел протестировать свое приложение на своем телефоне Android (Nexus 4). Для тестирования я рисую BitmapFont на моем SpriteBatch, показывающем FPS, гироскоп, живые ячейки и другие данные. На ПК у меня от ~500 до 4000 FPS, в зависимости от того, насколько быстро работает моя GOL-логика. Однако, если я запускаю его на Android, FPS падает до 10-15. Если я отключу свой ShapeRenderer (который является моим основным классом для рендеринга всех GOL-прямоугольников) с GOL-логикой почти на полной скорости, FPS будет постоянно на уровне 60 (я думаю, вы не можете отключить VSync на Nexus). 4).
Итак, вот мой вопрос: почему ShapeRenderer настолько неэффективен? Что еще я должен использовать для визуализации моих фигур?
Я опубликую свой (довольно простой) код рендеринга и картинку:
this.setColor(new Color(1, 0, 0, 1));
for (int i = 0; i < grid.getX_length(); i++) {
for (int j = 0; j < grid.getY_length(); j++) {
if (cells[i][j].getState()){ // checks if the cell is dead or alive
this.setColor(new Color (0,0,0,1));
rect(i * size, j * size, size-gap, size-gap); // draws it.
}