Оглавление:
- Запасы
- Шаг 1. Функции Start и Round_setup
- Шаг 2: ход игры
- Шаг 3: игра 1: противник AI
- Шаг 4: Игра 2: Многопользовательский симулятор
- Шаг 5: Игра 3: Многопользовательская игра Jacdac
- Шаг 6: Пусть битва с Ктулху начнется
Видео: (Сетевая игра) Бои в GameGo с Makecode Arcade: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
GameGo - это портативная игровая ретро-консоль, совместимая с Microsoft Makecode, разработанная TinkerGen STEM education. Он основан на чипе STM32F401RET6 ARM Cortex M4 и предназначен для преподавателей STEM или просто людей, которым нравится создавать ретро-видеоигры. Вы можете следовать этому руководству и попробовать игру в симуляторе Makecode Arcade, а затем запустить ее на GameGo.
В статьях, которые мы публиковали до этого, мы уже пробовали свои силы в создании платформерной игры и римейка Battle City. На этот раз я хотел использовать интерфейс Jacdac, чтобы соединить два GameGo вместе и позволить игрокам сражаться за превосходство в многопользовательской игре-истребителе. К сожалению, я обнаружил, что блочное программирование для многопользовательской игры Jacdac сейчас находится в стадии бета-тестирования и имеет некоторые ошибки - все еще можно делать более простые игры, но не повезло с моим файтингом. Итак, в этом руководстве я публикую три версии игры (которую я назвал "Cthulhu Combat":))
- однопользовательская версия с простым ИИ-противником
- многопользовательская версия для игры в аркадном симуляторе
- многопользовательская версия с Jacdac (неполная, будет обновлена позже)
Запасы
GameGo
Microsoft Makecode Arcade
Шаг 1. Функции Start и Round_setup
Я подробно опишу кодирование одиночной игры, а затем в следующих шагах мы обсудим, как превратить ее в
а) симулятор мультиплеера
б) Многопользовательский режим Jacdac.
Мы начинаем с установки тайловой карты на темное подземелье и создания спрайтов для игрока и AI-бота - хотя оба они будут принадлежать к типу игрока. Мы установили для них ускорение по оси Y на 600, чтобы они не летели после прыжка. Мы также инициализируем снаряды от бота и игрока перед вызовом функции round_setup. Функция round_setup заботится о подготовке нового раунда для нас - причина, по которой мы делаем ее функцией, заключается в том, что в игре может быть до 3 раундов, и мы хотим избежать повторения одного и того же кода. В этой функции сначала мы проверяем, одержал ли кто-либо из игроков 2 победы - если это условие оценивается как True, игра окончена. Если у обоих игроков меньше двух побед, мы увеличиваем переменную round_num на единицу и размещаем игроков на их стартовых позициях, пополняем их жизни до 100 и объявляем начало нового раунда.
Шаг 2: ход игры
В этой игре сам мир статичен, и игровой процесс привязан к действиям игроков. В четырех блоках мы определяем большинство правил игры, эти блоки следующие: при нажатии кнопки вверх, при нажатии кнопки вниз, при нажатии кнопки A и при нажатии кнопки B. Давайте посмотрим на каждый из этих блоков.
при нажатии кнопки вверх - логика двойного прыжка. Если мы нажимали кнопку прыжка менее 3 раз, то мы устанавливаем скорость взрыва игрока равной - 140 (движение вверх). У нашего игрока установлено ускорение 600, поэтому, как только мы прыгнем, наша скорость будет быстро уменьшаться. Как только он достигает 0 (не перемещаясь по вертикальной оси), мы снова устанавливаем jump_count равным 0.
при нажатии кнопки «вниз» - логика щита дальнего боя. Если нажать кнопку «вниз», игрок меняет свое изображение на «экранированный» и устанавливает переменную экранирования на 1.
на нажатой кнопке А - выстрелить. Это в значительной степени говорит само за себя.
на нажатой кнопке B - рукопашная атака, аналогичная по реализации щитом.
Мы устанавливаем изображения спрайтов игроков и их экранированные / атакующие переменные на 0 каждые 500 мс при обновлении игры каждый блок.. мс. Мы могли бы установить независимые таймеры для каждого действия, но для простоты мы просто воспользуемся основным циклом обновления игры.
Условия выигрыша здесь довольно просты - когда жизнь игрока достигает 0, другой игрок выиграл раунд, затем мы сохраняем количество побед игрока в переменной.
Наконец, есть два блока, которые контролируют урон от атаки дальнего боя и урон от атаки ближнего боя. В каждом из них мы проверяем наличие столкновения спрайтов, и установлено ли значение переменной защиты / атаки для атакующего игрока на 0/1.
Шаг 3: игра 1: противник AI
В первой игре мы создадим относительно простого AI-противника, который будет вторым игроком. Внутри при обновлении игры каждые 200 мс мы сначала проверяем расстояние между игроком и ИИ - если оно меньше 20, мы переводим ИИ в режим рукопашного боя, повышая его шанс атаки ближнего боя до 30 и шанс атаки дальнего боя до 30. Если расстояние больше чем 20, мы устанавливаем шанс рукопашной атаки равным нулю (нет пинты в рукопашной атаке, так как игрок слишком далеко) и повышаем шанс до 70. После того, как переменные для шансов действий были установлены, мы продолжаем выполнять эти действия с указанными шансами. Если вы попробуете сыграть против этого простого ИИ самостоятельно, вы увидите, что, несмотря на то, что его поведение очень простое, победить против него непросто - как часто в случае с противниками, управляемыми компьютером, он побеждает в основном потому, что он может выполнять больше действий в секунду, чем человек-игрок.
Если вы застряли во время кодирования, вы можете загрузить полный код этого проекта в нашем репозитории GitHub и открыть его в Makecode Arcade.
Шаг 4: Игра 2: Многопользовательский симулятор
Вариант игры для двух игроков в симуляции очень похож на однопользовательскую версию, за исключением того, что мы заменяем блок поведения ИИ четырьмя блоками, нажимаемыми на кнопку игрока 2 - с содержимым внутри этих блоков, отражающим содержимое тех же блоков для игрока 1. Имейте посмотрите на снимок экрана, чтобы лучше понять, какие изменения вам нужно внести. Кроме того, нам также нужно добавить функцию перемещения игрока 2 с блокировкой кнопок при запуске и изменить конечный экран для второго игрока на WIN вместо LOSE.
Шаг 5: Игра 3: Многопользовательская игра Jacdac
В этой ветке форума я нашел реализацию многопользовательского режима Jacdac с аркадными блоками Makecode.
forum.makecode.com/t/new-extension-real-mu…
Я протестировал там пример игры (Space Invaders) и обнаружил, что она работает очень хорошо. К сожалению, игровая механика Cthulhu Combat использует множество переменных, и кажется, что расширения Real Multiplayer еще не поддерживают синхронизацию переменных - так что я заставил его работать, действия двух игроков синхронизируются между устройствами, но жизнь может не Не падаю на устройство оппонентов. Также что-то не так с механикой снарядов, снаряды не исчезают после удара о стену, из-за чего игра теряет связь после того, как было выпущено около 10 снарядов.
Вы можете попробовать многопользовательский режим, загрузив файл-p.webp
Шаг 6: Пусть битва с Ктулху начнется
Есть еще много улучшений, которые можно внести в нашу простую игру-файтинг - например, вы можете добавить более сложное поведение ИИ или использовать расширение для добавления комбинаций кнопок и / или анимационных последовательностей. Удачи и получайте удовольствие от программирования собственных игр с помощью GameGo и Makecode Arcade.
Если вы делаете улучшенную версию игры, поделитесь ею в комментариях ниже! Для получения дополнительной информации о GameGo и другом оборудовании для производителей и преподавателей STEM посетите наш веб-сайт https://tinkergen.com/ и подпишитесь на нашу новостную рассылку.
Рекомендуемые:
Платформер с бесконечными уровнями на GameGo With Makecode Arcade: 5 шагов (с картинками)
Платформер с бесконечными уровнями на GameGo с Makecode Arcade: GameGo - это портативная игровая ретро-консоль, совместимая с Microsoft Makecode, разработанная TinkerGen STEM education. Он основан на чипе STM32F401RET6 ARM Cortex M4 и предназначен для преподавателей STEM или просто людей, которым нравится создавать ретро-видеоигры
Ремейк Battle City для GameGo с Makecode Arcade: 4 шага (с изображениями)
Переделка Battle City для GameGo с Makecode Arcade: GameGo - это портативная игровая ретро-консоль, совместимая с Microsoft Makecode, разработанная TinkerGen STEM education. Он основан на чипе STM32F401RET6 ARM Cortex M4 и предназначен для преподавателей STEM или просто людей, которым нравится создавать ретро-видео
Игра Саймона - Веселая игра !: 5 шагов
Simon Game - Fun Game !: Справка: После долгих выходных вы должны очень постараться, чтобы выполнить все задания и работу, за которые вы отвечаете. Пора нам тренировать мозг, не так ли? Помимо этих скучных и бессмысленных игр, есть игра под названием Simon Game
Сетевая игра по кнопке: 4 шага
Whack a Button Multiplayer: игра, похожая на Whack-a-Mole. Использование светодиодов и кнопок. Есть 2 режима: -Один игрок-Многопользовательский режим: в одиночном режиме есть 3 уровня: УРОВЕНЬ_1: 1 диод на 1 секунду УРОВЕНЬ_2: 2 диода для 1 секунда LEVEL_3: 2 диода на 0,7 секунды А для мультип
Сетевая лаборатория: 9 шагов (с изображениями)
Сетевая лаборатория: Эта инструкция довольно длинная и сложная. Несколько проектов объединены в один, чтобы предоставить мне портативную лабораторию для тестирования сети, позволяющую мне диагностировать сетевые проблемы, пакеты-акулы из проводных и беспроводных сетей, тестировать патч-кабели и