Top Ad unit 728 fff 90

Создание ролевых игр (9 урок)

ИСКУСТВЕННЫЙ ИТНЕЛЕКТ

Привет. Вы никогда не задумывались, почему, когда вы играете в комп, вам не хочется, чтобы с вами в него ещё кто-то играл? Будь это друг, бабушка, младшая сестрёнка или Анфиса Чехова. Да потому что сейчас практически во всех играх присутствует ИИ. А в некоторых даже несколько(доходит до тысяч). Сейчас мы попробуем создать небольшой ИИ.

Создаём героя, которым вы будете играть, и программируем его так, чтобы тот умел двигаться по всем осям. (см. урок 1). Теперь приступаем к созданию врага, который будет бегать за героем. Нарисуем врага, преобразуем его в клип и в поле “Имя копии” назовём его vrag. Затм выделев его присвоим ему такой код:

 

onClipEvent (load) {

speed = 3 // скорость врага

} onClipEvent (enterFrame) {

if (_root.hero._x > this._x) { // если враг замечает что герой правее его

this._x += speed; // то враг бежит направо остальное аналогично

}if (_root.hero._x < this._x) {

this._x -= speed

}

if (_root.hero._y < this._y) {

this._y -= speed }

if (_root.hero._y > this._y) {

this._y += speed }

 

ИИ готов. Он бегает за героем, но он не поворачивается в его сторону. Сейчас мы сделаем так, чтобы враг смотрел на героя. В клипе героя пишем такой код(нужно что бы он был между фигурными скобками функции onClipEvent (enterFrame) ):

 

a = _root.vrag._y-_root.hero._y;

b = _root.vrag._x-_root.hero._x;

this._rotation = Math.atan2(a, b)/(Math.PI/180);

 

А во втором :

 

gotoAndPlay(1);

Всё теперь враг бегает за вами и смотрит в вашу сторону. Можно ещё добавить условие. Если враг догоняет героя, то, что-то происходит. Присваиваем клипу врага ещё один код:

 

onClipEvent (enterFrame) {

if (_root.hero.hitTest(this)) {// при нахождении общих точек между героем и врагом

_root.gotoAndStop(3); // ролик переходит в третий кадр на главной сцене

}

}

 

Все враг готов.

All Rights Reserved by ProcessPlus 2014 - 2020

Написать нам

Имя

Email *

Сообщение *