Создаем искусственный интеллект - Scirra Construct - Конструкторы игр, системы разработки игр
Навигация по сайту
Сайт:

Дополнительно:

Файловый архив:

Каталог статей:

Форум:


Категории раздела
Game Maker [27]
Flash [3]
FPS Creator X9, X10 [1]
Scirra Construct [14]
Multimedia Fusion [0]
001 Game Maker, Map 001 [0]
3D RAD [16]
3D Game Studio [1]
Silent Walk FPS Creator [0]
Blender (Блендер) [1]
Game Editor [0]
Остальное [1]
Все остальное, что не попадает ни под одну категорию.

Мини-Опрос
Сколько Вам лет?
Всего ответов: 1686

Партнеры сайта
....

 Главная » Статьи » Конструкторы игр, системы разработки игр » Scirra Construct » Создаем искусственный интеллект

Создаем искусственный интеллект

20:31

Всем привет, в этой статье я хотел бы вместе с вами создать несколько поведений для противника.

Поведение №1. Патрулирующий
Описание: Противник патрулирует определенную область. Т.е. передвигается из одного места в другое.
Как будет реализовано: Мы создадим противника и две стенки. При касании противником одной из стенок, он разворачивается на 180 градусов.


Создаем врага:
Insert an object – Sprite – рисуем противника – сохраняем
Переименуйте только что созданный спрайт в theEnemy.

Создаем стену:
Insert an object – Sprite – рисуем стену (в игре она будет невидимой, так что сильно не старайтесь biggrin ) – сохраняем
Переименуйте только что созданный спрайт в block.

Размещаем одну стену, копируем ее (ПКМ - Copy), вставляем (ПКМ - Paste) и размещаем вторую стену в другом месте. Между этими стенами помещаем противника.



Сделаем стены невидимыми в игре:
Выделяем стену – Properties – ставим галочку напротив Invisible on start

Сделаем так, чтобы противник смог "ходить” по прямой линии, для этого добавим ему поведение Bullet (Пуля):
Выделяем theEnemy – Properties – Behaviors – Add – Bullet – Insert

Можно сразу же обратить внимание на некоторые параметры этого поведения:
Speed – это скорость передвижения;
Acceleration – ускорение;
Destroy when – когда нужно уничтожать объект (Outside layout – если объект вышел за пределы уровня; Offscreen – если объект вышел за пределы видимости экрана; Never – никогда; Range exceeded – при превышении диапазона).

Переходим в редактор событий (Event Sheet Editor).

Событие:
Insert event – theEnemy – On collision with another object – Pick an object - block

Действие:
New action – theEnemy – Set angle – в нижнем окне выбираем theEnemy – Get angle – в поле Angel прописываем "theEnemy.Angle + 180” (без кавычек) – Finish



Только что мы сделали так, что при соприкосновении противником стены – он поворачивался на 180 градусов.

Поведение №2. Стрелок
Описание: Противник стоит на месте и стреляет по прямой через определенные интервалы времени.
Как будет реализовано: Мы создадим противника, пулю и заставим его через каждые полторы секунды стрелять.


Создаем противника:
Insert an object – Sprite – рисуем противника – сохраняем
Переименуйте только что созданный спрайт в theShoot.

Создадим пулю, которую будет испускать противник:
Insert an object – Sprite – рисуем пулю – сохраняем
Переименуем только что созданный спрайт в bul.

Дадим объекту bul поведение пули:
Выделяем bul – Properties – Behaviors – Add – Bullet – Insert

Переходим в редактор событий (Event Sheet Editor).

Событие:
1. Insert event – theShoot – Object is on-screen?
2. Insert new condition – System – Every X milliseconds – пишем значение 1500 – Finish

Действие:
New action – theShoot – Spawn another object – Pick an object – bul – не забывайте в поле Layout указать номер слоя, на котором должна быть создана пуля - Finish



В событии №1 мы указали условие, при котором противник начнет стрельбу, т.е. только тогда, когда он видим на экране. Если вы хотите, чтобы противник стрелял всегда – поставьте System – Always.
Во втором событии мы установили интервал, через который противник будет стрелять.
В действии мы, собственно, сделали так, чтобы противник начал стрелять.

Все бы хорошо, но противник стреляет вправо! Сделаем так, чтобы он стрелял налево:
Выделяем theShoot - Properties - в поле Angle пишем 180 (указали направление взгляда противника) - ставим галочку напротив Auto mirror (автоматическое отзеркаливание по горизонтали).
Ну вот, теперь все так, как нужно.

Поведение №3. Преследующий
Описание: Героя начинают преследовать множество противников, которые следуют точно ему по пятам
Как будет реализовано: Мы создадим героя и нескольких противников. Противникам дадим поведение Custom Movement и с помощью редактора событий заставим их каждую секунду следовать в направлении героя.


Создаем героя:
Insert an object - Sprite - рисуем отважного рыцаря - сохраняем
Переименуйте только что созданный спрайт в bazis

Создаем противника:
Insert an object - Sprite - рисуем что-то маленькое и с крыльями - сохраняем
Переименуйте только что созданный спрайт в flyEnemy.
Сделайте несколько копий противника и раскидайте их по уровню.

Дадим противникам поведение Custom Movement:
Выделяем flyEnemy - Properties - Behavior - Add - Custom Movement - Insert

Переходим в редактор событий (Event Sheet Editor).

Событие:
Insert event - System - For Each Object - Pick an object - flyEnemy - Finish

Подсобытие:
Правой кнопкой мыши по только что созданному событию - Insert sub-event - flyEnemy - Compare X position - в графе Comparison выбираем Less or Equal, в X co-ordinate пишем "bazis.X + 500" (без кавычек) - Finish

Действия для подсобытия:
1. New action - flyEnemy - переходим во вкладку Custom Movement - Change angle towards object - Pick an object - bazis - Finish
2. New action - flyEnemy - переходим во вкладку Custom Movement - Change speed - Set, Speed = 200 - Finish



Событие - мы выделили всех противников flyEnemy.
Подсобытие - установили причину начала движения противников. Т.е. если герой находится на расстоянии меньше, чем в 500 единиц - flyEnemy начинают движение в сторону героя.
Действие 1 - задаем направление движения противников (т.е. их цель - герой).
Действие 2 - задаем скорость движения противников.

Данная техника вычисляет расстояние между героем и противником по оси X. Если вам нужно вычисление расстояния по оси Y, то в подсобытии выбираем Compare Y position, и не забываем изменить X на Y в выражении "bazis.X + 500"

Надеюсь, принцип создания ИИ вам понятен, и вы сможете реализовать то, что вам нужно.
С вами был Loko™, успехов!

Категория: Scirra Construct | Просмотров: 10334 | Добавил: Loko™ (18.11.2012) | Рейтинг: 5.0/4
Теги: Искусственный интеллект скирра, ии, Ai
HTML ссылка на материал:
BB ссылка на материал:
Похожие материалы :
Возможно вам будет интересно:
PHP и MySQL – Теоретический курс. Введение. (2)
Как рисовать спрайты в DXDraw DelphiX (0)
3d Rad - Как добавить свою модель (6)
Про HTML (1)
Наглядный пример использования переменных (0)
Броня для игрока (1)
Моя первая страница на PHP (0)
Создаем танчики (0)
Урок про скелетную анимацию (0)
Создаем платформер. Scirra Construct (4)
Урок для начинающих по Game Maker v8 (платформенная игра) (1)
О игрострое, движках и людях (1)
Дизайн персонажей для игр (0)
Функция LIST (0)
Borland Assembler (BASM) уроки для начинающих (урок 7 часть 2) (0)
Всего комментариев: 1
1 blib   (30.12.2014 08:17) [Материал]
А какие нть еще ИИ в скирре можно запилить?
Оч годная статья, для тех кто начинает!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Поиск по всему сайту:
Поиск по разделу:

Панель пользователя
Здравствуйте, Гость


Ник:
Пароль:
Запомнить :

Ваш IP: 127.0.0.1

Случайные конструкторы

Случайные движки

Случайные статьи

Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

На сайте были:
Higett , Zettine , Marinett , barbarosh , NikoDen , VictorF

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2025 Хостинг от uCoz
Топ Разработка игр