В этом уроке я покажу вам, как программировать в Retro Gadgets, создавая 2D-платформер.!
Введение
В этом видео, Я покажу вам, как создать следующие функции:
- Анимация, основанная на времени
- Контроллер движения игрока
- Воспроизвести аудио
- Столкновение спрайтов
- Сохранить игру + Автосохранение
- Механика случайного появления
В этом руководстве я создал разделы для некоторых основных функций., а готовый гаджет вы сможете найти в мастерской! Рекомендую следить вместе с видео, но вы также можете просмотреть код ниже. В основном это руководство по программированию в ретро-гаджетах., однако, если люди планируют использовать код для 2D-платформера, его обязательно нужно обновить.. Я могу вернуться и обновить руководство и проект в будущем..
Если вы нашли это руководство полезным, Буду очень признателен, если вы оцените его и оставите комментарий о том, как я могу улучшить!
Видео
Взаимодействие с чипами
Нам нужно инициализировать каждый добавленный нами чип и настроить его для нашего проекта..
Импорт ресурсов
Как только мы настроим ПЗУ, мы можем импортировать загруженные нами ресурсы и импортировать встроенные ресурсы, такие как шрифт. ПЗУ означает постоянное запоминающее устройство., и данные, хранящиеся здесь, не могут быть изменены после компиляции..
Вот, например, спрайт-лист. Обратите внимание, что у меня есть спрайты, обращенные вправо, в одном ряду и спрайты, обращенные влево, в другом.. Это облегчит их анимацию позже.. Все ресурсы должны быть помещены в папку импорта, которую можно найти в главном меню..
Фотография размыта, потому что высота спрайтов всего 16 пикселей..
Переменные игрока и монеты
Настройте переменные, которые будут использоваться игроком и монетой.. У нас есть различные счетчики тиков, чтобы отслеживать время анимации наших игроков., скорость появления монет, и случайное начальное число для позиции монеты.
Сохранение и автосохранение
Для того, чтобы сохранение работало корректно, вам необходимо инициализировать переменные, которые вы хотите сохранить, если сохранение не существует. В противном случае, когда вы попытаетесь использовать эти переменные, они будут равны нулю.
следует вызывать сразу после инициализации локальной переменной. Вы можете сохранить только одну таблицу в памяти, а таблицы в LUA работают с ключом -> сопоставление пар значений. Это похоже на словари на других языках, таких как Java..
Функция обновления
Хорошей практикой является поддерживать чистоту функции обновления и не писать здесь слишком много логики.. Позвольте другим методам обрабатывать вашу функциональность. Было бы неплохо создать функцию автоматического сохранения, которая будет вызывать сохранение каждый раз. 60 тикает, а не имеет здесь эту логику. 60 тиков примерно равно 1 секунда, когда программа работает на максимальной скорости.
Увеличение тиковых счетчиков
Ничья
Мы рисуем счет в каждом кадре с помощью собственной функции на случай, если захотим обновить его позже..
Контроллер движения + Анимации
Это базовый контроллер, который я сделал для управления анимацией.. Я объясняю весь контроллер в видео. Единственное, что следует отметить, это то, что я не обрабатываю, когда игрок нажимает на DPad, чтобы персонаж исчезал на секунду..
Анимацию, основанную на времени, можно увидеть в том, как мы меняем анимацию персонажа на основе переменной TicketCounter.. 15 тиков примерно равно 1/4 секунды, и в 30 тики мы сбрасываем счетчик, чтобы повторить анимацию. Анимации бега и прыжков состоят из 2 кадры каждый. Хотя анимация бега основана на времени, анимация прыжка зависит от роста игрока в сцене. Это не сработает, если ожидается, что игрок будет прыгать на другие объекты..
Случайное появление монет
Вот как мы создаём монету в случайном месте на экране между 1-56. Поскольку наша монета — 8×8 спрайт, мы рисуем монету максимум x = (64-8). Чтобы заставить работать генерацию случайных чисел, нам нужно позвонить в
функция, где globalTickCounter каждый раз является другим числом. Это поколение семян работает аналогично семени мира Minecraft..
Мы также используем переменную coinSpawner, чтобы определить, 180 клещи или примерно 3 прошло несколько секунд до появления новой монеты.
Столкновение игроков и воспроизведение звука
Проверяем, находится ли левая сторона нашего игрока слева от центра монеты., и правая сторона нашего игрока находится справа от центра монеты. Затем мы проверяем, равен ли рост игрока хотя бы центру монеты.. Поскольку мы статически создаем монеты в точке y = 26, а нижняя часть монеты находится в точке y = 34, мы можем сделать это, проверив, находится ли голова игрока хотя бы на уровне y = 30.
Это все, чем мы делимся сегодня для этого. Ретро-гаджеты гид. Это руководство было первоначально создано и написано ЧЕРВЬ РИДААА!. На случай, если нам не удастся обновить это руководство, вы можете найти последнее обновление, следуя этому связь.