Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.12.2013, 19:39
Stylecs94 вне форума Посмотреть профиль Отправить личное сообщение для Stylecs94 Найти все сообщения от Stylecs94
  № 1  
Ответить с цитированием
Stylecs94

Регистрация: Nov 2013
Сообщений: 12
По умолчанию Нужна помощь в создании искусственного интеллекта врага

Нужна помощь в создании вражеского танка, который сам движется по игровому полю
Вложения
Тип файла: zip WinRAR ZIP archive.zip (67.7 Кб, 22 просмотров)

Старый 19.12.2013, 19:41
viktorami вне форума Посмотреть профиль Отправить личное сообщение для viktorami Найти все сообщения от viktorami
  № 2  
Ответить с цитированием
viktorami

Регистрация: Sep 2011
Сообщений: 524
вы опишите что ли, словами - в чем именно загвоздка логическая. так будет больше ответов имхо.

Старый 19.12.2013, 20:08
Stylecs94 вне форума Посмотреть профиль Отправить личное сообщение для Stylecs94 Найти все сообщения от Stylecs94
  № 3  
Ответить с цитированием
Stylecs94

Регистрация: 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);
}
}
}

Старый 19.12.2013, 20:20
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Так возьмите этот код и перепешите под AS3 - разница не существенная
__________________
Марк Tween

Старый 19.12.2013, 20:25
viktorami вне форума Посмотреть профиль Отправить личное сообщение для viktorami Найти все сообщения от viktorami
  № 5  
Ответить с цитированием
viktorami

Регистрация: Sep 2011
Сообщений: 524
вот вот. я это же хотел сказать. шутить изволите) у вас вон уже только в комментариях вся логика)

Старый 19.12.2013, 20:26
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 6  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Начните с самого простого, создайте паука и заставьте его хотя бы просто поворачиваться.
Потом в сторону курсора, потом чтобы двигался. И если что не получается, спрашивайте.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.