Уклоняйтесь от препятствий | Кодементор
Привет, ребята!
Я всегда спрашиваю себя, как ИИ уворачивается от препятствий. Итак, я решил написать этот пост, описывающий, как я это реализую. Это моя первая попытка, так что не сердитесь на меня, хорошо.
Во-первых, мы должны определить наш мир. Я думаю создать 2D бесконечный раннер, который будет генерировать некоторые препятствия, от которых наш персонаж, ИИ, должен уклоняться. У меня есть два подхода к этому дизайну: первый — препятствия с предопределенными позициями по оси Y; И второй, случайные позиции Y без шаблона.
При первом подходе у ИИ будет список различных типов препятствий, которые будут создаваться в мире. Следующая диаграмма исследует это.
Преимущество этого решения заключается в менее сложном коде, но любое обновление вашей игры заставит вас изменить логику ИИ. Вам просто нужно спросить себя: «Хорошо. Я знаю препятствия A, B, C и D. Но что произойдет, если добавить еще одно, два или три?».
Процесс под названием Process input будет получать данные мира с помощью какой-то техники, которую я еще не определил, и Run process… Хорошо. Я думаю, это очевидно.
Второй подход, однако, сложнее кодировать, но если нет радикальных изменений, вам не нужно обновлять логику вашего ИИ. Давайте посмотрим на диаграмму.
Выглядит просто, правда? Но сложный код находится в шагах «Обработка свойств препятствий» и «Уклонение от препятствия с лучшим вариантом». Что такое «лучший»? Какие свойства должен обрабатывать ИИ? Что ж. Ответить на эти вопросы зависит от вас. Хорошее определение вашей игры сэкономит вам время и усилия.
Ну, я думаю, что мудрым выбором будет второй подход. Просто потому, что первый не очень хороший ИИ, я думаю.
Мы еще не определили наш мир. Я буду использовать поведение ИИ, которое я выбрал, чтобы создать наш мир. ВАЖНО: этот подход не является хорошим. Сначала должен быть определен ваш мир, а затем в дело вступит ваш ИИ.
Взгляни на этот мир, который я создал.
Этот мир действительно прост. Платформы — это объекты, которые будут двигаться справа налево. Это означает, что мы будем уменьшать координату X для каждой платформы, которую мы создаем. Это позволяет нам свободно перемещать нашего игрока по миру без сложной математики.
Я думаю, у нас есть все необходимое для создания нашей игры. В следующем посте я установлю свойства каждой платформы и препятствий, которые будут появляться в мире, и, возможно, установлю код раз и навсегда.
Надеюсь, вам понравилось, и если у вас есть совет, скажите мне.
Пусть код игры останется с вами!