Я думал о создании простой 2D игры Sidescroller, такой как SuperMario. Тогда я задумался о том, как сохранить, загрузить или создать уровни для игры. Первое, о чем я подумал, это нарисовать простой блочный png, который представляет уровень, создавая все части, где игрок может ходить особым цветом (возможно, сиреневым). Я импортировал бы уровень в блоках или плитках, чтобы я мог проверить на столкновение.
поэтому мои вопросы:
есть ли лучшие методы для этого?
Какие профессиональные методы для этого?
Должен ли я сделать это с Tiles и редактор карт на основе плиток? (по какой-то причине мне это не нравится, но я думаю, если бы это был лучший метод, я бы использовал его)
с уровнем на основе плиток, как бы вы реализовали уклоны, и как бы вы их проверяли на столкновения?
Обычный способ может быть, например, просто строка
0,0,0,0,0,0,1,1,1,0,0,0,2
где 0 будет блоком, по которому можно идти, 1 может быть шипами, а 2 - финишной чертой
вы просто прочитали бы это через текстовый файл (или жестко запрограммировали его в игре) и нарисовали относительный блок, связанный с числом, и имели бы логику коллизии для обработки, как бы она ни была настроена.
Очевидно, вы можете выбрать любой формат, который вы хотите, и, возможно, 0 означает рисовать 5 блоков, которые можно пройти.
Это только один из способов достижения этого.
http://www.smudgedcat.com/tut_tiledlevel.html эта ссылка является примером в c # с использованием инфраструктуры XNA. это даст вам приблизительную идею (она НЕ содержит уклонов, но аналогичная вещь может быть использована для определения этого типа случая)
С уважением Марк
источник
Во многих играх используется приложение с открытым исходным кодом Mappy . Он имеет свой собственный формат, который поддерживает несколько слоев и другие функции. Возможно, вы хотите связать несколько типов данных с данной плиткой.
Я думаю, что подход в редакторе уровня игры очень распространен. Режим разработчика - это внутреннее описание того, как были разработаны уровни для очень популярной игры Braid. В игре есть режим разработки, где уровни могут быть построены / изменены. Сами уровни имеют слой столкновения, покрытый графическими плитками:
И я лично не рекомендую это, но демонстрационная программа 2D для Allegro использовала некоторый тип формата 3D моделирования и преобразовала его в пользовательский игровой формат. Преимущество заключалось в том, что он мог моделировать очень гладкие, непрерывные поверхности. (Это была двухмерная физическая игра на скейтборде.)
источник
«Профессиональные» методы, вероятно, потребуют очень подробного редактора карт, возможно, на C #, который даст им полный контроль над всем.
Есть два основных подхода; проще сделать, но не так эффективно.
источник
У меня были похожие мысли (то есть вернуться к написанию игр хобби - работа и другие обязательства ...)
Я серьезно рассмотрел бы путь разработки «Редактора карт» как части игры / приложения.
Если ваша игра выйдет за пределы вашего собственного ПК, то контент для сообщества будет отличным подарком.
источник