Всем привет, ребята!
Недавно я копался в одной группе и стал замечать активность вопросов: «Как сделать генерацию мира?»
Что ж, пришло время ответить на этот вопрос
Создание блоков ландшафта
Сначала нам нужно создать блоки для генерации нашего ландшафта:
- Объект, который будет определять позицию для нового блока . Это наша начальная точка генерации блоков.
- Трава
- Блок земли с травой
- Земля
- Камень
Ещё добавляем Счётчик на Frame. Он будет генерировать случайное число, что бы рандомно создавать землю и камень.
Все объекты должны быть расположены за пределом экрана.
Так же нам понадобится сетка размером 32×32:
Создание генерации мира
Добавим новую переменную для объекта генерации. Назовём её Начальный_Y.
Теперь переходим в редактор событий и создаем новое событие:
Затем запускаем повторение «АБВ».
Когда выполняется цикл, объект смены генерации просто перемещается вниз на 32 пикселя.
Эти события нужны для того, чтобы начальная точка Объект Генерации не стоял на одном месте.
Когда происходит повторение, то каждый раз счётчик устанавливает случайное число от 0 до 8.
Если счётчик при очередном повторении не равен нулю, то создаётся блок земли в позиции блока генерации.
Если счётчик равен нулю, то создаётся блок камня в позиции блока генерации.
Когда блок генерации доходит до самого низа, то:
- перемещаем объект генерации на следующий столбец (по оси X) в случайную координату по Y
- перезаписываем переменную Начальный_Y
- создаем траву (наверху нового столбца)
На этом всё, дорогие друзья!
Пожалуйста, оставь комментарий и нажми на , если тебе понравилось
Всем удачи в разработке!
спасибо конечно за генератор мира, но как его сохранять? Если хочешь сделать пиксельную выживаловку, то как сделать так, чтобы все постройки и разрушения игрока сохранялись?
Вижу,что создаются объекты,но при этом экран пустой.В чем проблема?
Простите может это не по теме но как сделать искуственный интелект для врага в платформере. Чтобы он мог свободно двигаться по миру. Я уже повсюду искал последняя надежда тут
Прямо сейчас у меня нет готового исходника, извините
иСХОДНИК НЕ РАБОТАЕТ
Что сие означает?
«Эти события нужны для того, чтобы начальная точка Объект Генерации не стоял на одном месте.»
При отключение двух этих событий, я не вижу изменений в программе.
Ничерта не понятно
Самое интересное, что это не записывается например в array. Мир на время, пока не закроешь приложение
Так мир и не должен сохраняться. Весь смысл в том, что уровень всегда разный) И кстати Я дополнил статью про массив информацией о сохранении и загрузки объектов при помощи массива.
Нифига не понял
Почему?
Там всё понятно описано же
Можно по-подробнее о циклах?
Цикл (Loop) — Это действие, которое, при его запуске, начинает работать через определённый отрезок времени в миллесекундах, который вы указываете.
Красавчик
Красавцы