|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|
|||||
Регистрация: Nov 2013
Сообщений: 12
|
Нужна помощь в создании искусственного интеллекта врага
Нужна помощь в создании вражеского танка, который сам движется по игровому полю
|
|
|||||
Регистрация: Sep 2011
Сообщений: 524
|
вы опишите что ли, словами - в чем именно загвоздка логическая. так будет больше ответов имхо.
|
|
|||||
Регистрация: Nov 2013
Сообщений: 12
|
Нужно что-то типа такого но на as3
//массив хранит список всех противников которые бегают по сцене в данный момент var spiders = new Array(); //добавляет паука на сцены и задаёт для него поведение function placeSpider() { lev++; var d = spider.duplicateMovieClip("z" + lev, lev); //случайным образом выбираем с какой стороны экрана ему появиться if (Math.random() < .5) { d._x = ground._x + Math.random() * ground._width; if (Math.random() < .5) { d._y = ground._y - d._height / 2; } else { d._y = ground._y + ground._height + d._height / 2; } } else { d._y = ground._y + Math.random() * ground._height; if (Math.random() < .5) { d._x = ground._x - d._width / 2; } else { d._x = ground._x + ground._width + d._width / 2; } } //первоначальный поворот на цель и определение скорости var dx = hero._x - d._x; var dy = hero._y - d._y; d.a = Math.atan2(dy, dx); d._rotation = d.a / Math.PI * 180; d.speed = Math.random() * 2 + 2; //поведение противника d.onEnterFrame = function() { //смещается туда куда смотрит this._x += this.speed * Math.cos(this.a); this._y += this.speed * Math.sin(this.a); //постоянно корректирует своё направление движения на главного героя var dx = hero._x - this._x; var dy = hero._y - this._y; this.a = Math.atan2(dy, dx); this._rotation = this.a / Math.PI * 180; //проверка на достижение цели var dist = Math.sqrt(dx * dx + dy * dy); if (dist < 25 && !placed) { //запустить спецэффект placeBlood(); //запустить клип с сообщением о проигрыше //в этом примере не описан, но можете иметь ввиду _parent.black.play(); delete this.onEnterFrame; } }; //добавляем новосозданного паука в список spiders.push(d); } //функция удаления паука из списка противников //вызывается при попадании пули function removeSpider(s) { var i = spiders.length; while(i--) { var curS = spiders[i]; if(curS == s) { //удаляём поведение, т.к. мёртвые уже ничего не решают delete curS.onEnterFrame; spiders.splice(i, 1); } } } |
|
|||||
Регистрация: Sep 2011
Сообщений: 524
|
вот вот. я это же хотел сказать. шутить изволите) у вас вон уже только в комментариях вся логика)
|
|
|||||
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Начните с самого простого, создайте паука и заставьте его хотя бы просто поворачиваться.
Потом в сторону курсора, потом чтобы двигался. И если что не получается, спрашивайте. |
Часовой пояс GMT +4, время: 11:01. |
|
« Предыдущая тема | Следующая тема » |
|
|