Самый эффективный способ создать игровой уровень? (Библиотека GDX)

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

  1. Использование тайловых карт. По сути, вы используете несколько фрагментов для создания своего уровня в редакторе мозаичных карт, таком как Tiled, а затем используете этот как ваш уровень.

  2. Используйте ArrayList и сохраните все игровые объекты (кирпичи, шипы и т. д.). Все объекты и их позиции будут сохранены в текстовом файле, а затем доступны и помещены в массив во время выполнения с использованием StringTokenizer и цикла.

Мне кажется, что пользоваться Тайловой картой проще и удобнее. Есть ли какие-либо недостатки в использовании мозаичных карт и/или преимущества в использовании метода ArrayList? Или есть другой метод, который еще лучше?


person michaeljan    schedule 23.08.2015    source источник


Ответы (2)


Ответ в вашем вопросе: Tiled Map проще и удобнее, текстовые файлы сложнее и менее удобны.

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

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

person mgsx-dev    schedule 24.08.2015

Карты плитки могут быть простыми в использовании после того, как вы их изучите, но изучение их может быть не всегда легким. Вот вики, чтобы убедиться:

https://github.com/libgdx/libgdx/wiki/Tile-maps

Если вы считаете, что ваша игра достаточно проста, чтобы ее можно было реализовать с помощью ArrayList и StringTokenizer, почему бы и нет.

Однако, скажем, ваша игра становится более сложной в будущем. Возможно, вы пожалеете, что не использовали Tile Maps, чтобы помочь вам справиться с этой сложностью.

person strider    schedule 25.08.2015