Четверг, 21 Ноября 2024, 11:57

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [83]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [147]
Статьи о программах для создания игр, уроки и описания.
Софт [43]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [167]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [132]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какой вид используется в ваших играх?
Всего ответов: 10346
Главная » Статьи » Программирование

Создание ИИ для платформера (как в Террарии)
Так... для начала создадим спрайты и объекты к ним: s_npc_slime (слизень. обязательно должен быть серого цвета) ЗЫ сделайте второй кадр с тем же слизнем только немного сплющеным s_player (игрок). Теперь объекты: o_npc_slime (слизень) o_player (игрок).
Ну вот, с этим разобрались. Теперь откроем объект слизня и в создание запишем этот код:
Код

image_speed=0  
image_blend=choose(c_red,c_black,c_blue,c_green,c_purple)  
jump_speed = 12;
gravity_amount = 1;  
gravity_direction = 270;
alarm[0]=choose(50,55,60,65,70,75,80,85,90,95,100)
hp=10

Давайте теперь разберем что к чему.
Первая строка задает скорость анимации (0)
Вторая строка рандомно выбирает цвет для слизня.
третья строка отвечает за высоту прыжка слизня.
четвертая строчка это сила гравитации.
пятая это направление гравитации.
ну и последняя строка ставит таймер на прыжок.
Теперь заходим в степ и пишем туда следущее:
Код

if place_free(x, y + 1)  
{
  gravity = gravity_amount;  
}
else
{
  gravity = 0;  
}

Тут я думаю объяснять нечего так как это озы гамака.
Далее создаем два события - alarm0 и alarm1.
В первый сигнал:
Код

image_speed=0.5 //скорость картинки
alarm[1]=20 //сам таймер

Во второй сигнал:
Код

image_index=0 //скорость картинки на 0

jrl=choose(0,1) //JRL выбор стороны
{
vspeed-=jump_speed //приравниваем вертикальную скорость к переменной
}
{
if jrl=0 and not place_free(x,y +1)
hspeed-=2  
if jrl=1 and not place_free(x,y +1)
hspeed+=2
}

alarm[0]=choose(50,55,60,65,70,75,80,85,90,95,100) //тайм на анимацию

Вот мы совсем близко к победе)))
осталось только столкновение с блоком (платформой)
Код

x = xprevious;  
y = yprevious;  

if vspeed < 0 // если вертикальная скорость меньше нуля  
  move_contact_solid(90, -vspeed);//при контакте с чем-либо крепким.
else //иначе
  move_contact_solid(270, vspeed); //ÿ âñå ðàâíî íå â ýòîì íå ðàçáèðàþñü :D  
//выключаем скорости
vspeed = 0;  
hspeed = 0;  

Ну вот и все) Заходим в комнату и проверяем!
====================
Не забывайте про свои плюсы, и тогда я напишу часть 2)
Категория: Программирование | Добавил: CUbeB (24 Февраля 2019) | Автор: CubeB
Просмотров: 4289 | Комментарии: 5 | Рейтинг: 4.4/12 |
Теги: код, гайд, поведение, Слизняк, реакция, GM, враги, ИИ, GML, слизень, платформер, интеллект, умный, Враг, AI, обучение, Искусственный интеллект
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Создание ИИ для платформера (как в Террарии)», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 5
+2-
2 GC-Vic   (26 Февраля 2019 12:14) [Материал]
GC-VicСомневаюсь, что это умный ИИ, но для рядового врага пойдет. Для боссов ИИ куда сложнее нужно делать и с фазами желательно.

+1-
3 CUbeB   (27 Февраля 2019 15:45) [Материал]
CUbeBВозможно потом выложу как сделать босса)

+0-
4 Core   (28 Ноября 2019 21:27) [Материал]
CoreСудя по дате входа, кубиб-хабиб не будет делать босса))

+0-
5 Core   (28 Ноября 2019 21:28) [Материал]
Coreвозьму эту ношу на себя, если в течении недели он не врубится)

+1-
1 CUbeB   (25 Февраля 2019 15:16) [Материал]
CUbeBНадеюсь всем понравится моя статья :D

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Fyrox
  • ZDaemon
  • RTS Creator
  • Sandy3D
  • Haaf's Game Engine
  • Sprite Widget
  • Axiom Engine
  • Visionaire Studio
  • AndEngine
  • choice4genesis
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг