Как предотвратить падение моего FPS при загрузке таблицы спрайтов в Java?
Эй, ребята, я давно занимался программированием Java-игр, и у меня в последнее время была проблема. Когда я загружаю сравнительно небольшой спрайт-лист в java, мой FPS увеличивается с 500 до 250 и делает мою игру довольно медленной. Если бы кто-нибудь знал, как сделать Java-игру менее запаздывающей и получить лучший FPS, это было бы здорово!
BufferedImage spriteSheet = ImageIO.read(new File(spriteSheetLocation));
sprites = new BufferedImage[rows * columns];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
sprites[(i * columns) + j] = spriteSheet.getSubimage(i * width,
j * height, width, height);
}
}
1 ответ
Обычно при разработке игр вы cache
все твои sprites
(или почти), поэтому вы загружаете их только один раз в начале.
В те времена, когда я занимался разработкой игр, я использовал редактор кеша (его легко создать самостоятельно, но, возможно, в Интернете их достаточно, если вы хотите сэкономить время), тогда вы сохраняете каждый из своих спрайтов в файле как байты (сериализованные объекты). Затем этот файл сжимается редактором кеша, и каждый игрок скачивает его один раз и сохраняет где-то на компьютере (они даже не подозревают, что это сделано, это обрабатывается игрой).
Затем, когда игрокам приходилось загружать новые спрайты, он уже кэшировался на компьютере и работал очень быстро.