MOLIER ART STUDIO
Суббота, 20.04.2024, 10:17
Приветствую Вас Гость | RSS
 
Главная искуственный интилект - ФорумРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Molier  
Форум » Wintermute Engine » Делаем КВЕСТ » искуственный интилект
искуственный интилект
rapivayДата: Вторник, 11.10.2011, 15:32 | Сообщение # 1
Группа: Проверенные
Сообщений: 108
Награды: 4
Репутация: 10
Статус: Offline
Награды
За 100 Сообщений
Доброго времени суток!Такой вопрос,как понятно из темы,возможен ли ai на движке?

Добавлено (11.10.2011, 15:32)
---------------------------------------------
Я далёк от программирования,но можно сделать так,что враг идёт на координаты персоонажа и подходя на определённое расстояние наносит атаку?Ведь персоонаж по кликанью мыши расчитывает путь,обходя объекты,что если этому научить противника?


.
 
FobosMasterДата: Среда, 12.10.2011, 12:46 | Сообщение # 2
Группа: Проверенные
Сообщений: 62
Награды: 1
Репутация: 9
Статус: Offline
Награды
rapivay, да,, конечно такое можно реализовать. как мне кажется самый простой способ, это создать еще одного актера, и программным способом "заставить" его пойти к заданной точке. а огибать препядствия он будет сам, ибо это заложено в актера. (это навскидку, не факт, что я прав) а там уж отслеживать его в стиле:
Code
if (enemy.X == "Нужная координатаХ") && (enemy.Y == "нужная координата У") // если координаты Х,У вражины совпадают с нужными(то есть дошел вражина до места)
enemy.atak(actor) //вражина атакует актера (включается заранее прописаный метод "atak(target)", и прикрепляется к нашей вражине)


Модераторы в челябинске настолько суровы.. Нет, они вас не банят, они приходят к вам домой и раскалывают череп..

Сообщение отредактировал FobosMaster - Среда, 12.10.2011, 12:47
 
rapivayДата: Среда, 12.10.2011, 23:05 | Сообщение # 3
Группа: Проверенные
Сообщений: 108
Награды: 4
Репутация: 10
Статус: Offline
Награды
За 100 Сообщений
Спасибо фобос!Надо както чтобы он ещё отслеживал координаты персоонажа,тоесть он движется на персоонажа.Ах да ещё надо чтобы он видел персоонажа,попадаем в поле зрения и враг "активируется "!
Если всё это сделать то можно замутить игру наподобие обителя зла 1-3,а лучше дино кризиса 2.


.
 
FobosMasterДата: Четверг, 13.10.2011, 00:03 | Сообщение # 4
Группа: Проверенные
Сообщений: 62
Награды: 1
Репутация: 9
Статус: Offline
Награды
"Надо както чтобы он ещё отслеживал координаты персоонажа,тоесть он движется на персоонажа" - честно говоря не особо понял про кого речь..
"попадаем в поле зрения и враг "активируется "!" это только через позицию актера отслеживать как я понимаю.


Модераторы в челябинске настолько суровы.. Нет, они вас не банят, они приходят к вам домой и раскалывают череп..
 
rapivayДата: Четверг, 13.10.2011, 00:16 | Сообщение # 5
Группа: Проверенные
Сообщений: 108
Награды: 4
Репутация: 10
Статус: Offline
Награды
За 100 Сообщений
Попробую расписать:герой идёт по сцене,попадает в поле зрение врага и тот движется на героя,когда враг приближается вплотную он наносит атаку.

Добавлено (13.10.2011, 00:16)
---------------------------------------------
Компрендо?


.
 
FobosMasterДата: Четверг, 13.10.2011, 11:43 | Сообщение # 6
Группа: Проверенные
Сообщений: 62
Награды: 1
Репутация: 9
Статус: Offline
Награды
попробую теперь я расписать:

актер идет по сцене, меняются его координаты. предположим, что актера пересек некую черту(черту видимости вражины) враг его увидел как это выглядит: если координаты актера стали больше(или меньше) допустимых, значит его увидел враг.

другой путь. Создаем регион "область видимости вражины" и проверяем, находится ли актер в этом регионе. если да, то вражина начинает путь.

если будет завтра время, накидаю что нибудь.

Добавлено (13.10.2011, 11:43)
---------------------------------------------
накидал примерный алгоритм, правда примитивный, и глючный.... не пойму, почему не могут двигаться сразу 2 актера одновременно, Но я с актерами вообще не разбирался, ибо пока не нужно. в общем смотри, то это, что нужно, или я просто тебя не понял: Скачать


Модераторы в челябинске настолько суровы.. Нет, они вас не банят, они приходят к вам домой и раскалывают череп..
 
rapivayДата: Четверг, 13.10.2011, 14:36 | Сообщение # 7
Группа: Проверенные
Сообщений: 108
Награды: 4
Репутация: 10
Статус: Offline
Награды
За 100 Сообщений
http://molier-artstudo.ucoz.ru/load....-1-0-34
-типа того

Добавлено (13.10.2011, 14:36)
---------------------------------------------
вот оно #include "scripts\base.inc"
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var Size = actor.Size + this.Size + 20; // distance minimum entre l'enemi et l'acteur (grandeur)

//Distance calculation function
function Get_distance()
{
var xminusx = (actor.PosX - this.PosX);
var zminusz = (actor.PosZ - this.PosZ);
var xpower = (xminusx * xminusx);
var zpower = (zminusz * zminusz);
var result = (xpower + zpower);
this.distance = Math.Sqrt(result);
}

while(this.Active && !this.Dead)
{
Get_distance(); /// Calculate the distance betwen actor and enemy

if (this.distance < 1000 ) ////The enemy looking range
{
if (this.distance > Size ) //If the enemy is to far to attack
{
this.GoToAsync(actor.X + Random(-50,50) , actor.Y + Random(-50,50) ); // The enemy go to player position
}
else
{
this.DirectTurnStop(); /// To stop turning it help to prevent the actor to skip directly to the target when actor is walking to a target and we call a turnto( d'ont know why)
this.Reset();
this.TurnTo(actor);
this.PlayAnimAsync("attack");
actor.ApplyEvent("Suffer");
actor.Healt = actor.Healt - this.Power;
Game.Msg("/msg0016/actor healt"+ actor.Healt); //
}
}

Sleep(Random(500,3000));
}


.
 
FobosMasterДата: Четверг, 13.10.2011, 15:04 | Сообщение # 8
Группа: Проверенные
Сообщений: 62
Награды: 1
Репутация: 9
Статус: Offline
Награды
ну да, что то типа этого получится после обработки напильником, только я бы атаку в отдельный метод вынес, чтобы быть более универсальным, к любым ситуациям, получится 2 метода:

метод движения к актеру
метод атаки на актера


Модераторы в челябинске настолько суровы.. Нет, они вас не банят, они приходят к вам домой и раскалывают череп..
 
rapivayДата: Четверг, 13.10.2011, 15:09 | Сообщение # 9
Группа: Проверенные
Сообщений: 108
Награды: 4
Репутация: 10
Статус: Offline
Награды
За 100 Сообщений
да это не я сделал)

.
 
FobosMasterДата: Четверг, 13.10.2011, 15:12 | Сообщение # 10
Группа: Проверенные
Сообщений: 62
Награды: 1
Репутация: 9
Статус: Offline
Награды
да это я понял!))) просто я имел в виду, что если плотно заняться этой ситуацией, то из моего примера получится как раз похожее на этот код))

Модераторы в челябинске настолько суровы.. Нет, они вас не банят, они приходят к вам домой и раскалывают череп..
 
Форум » Wintermute Engine » Делаем КВЕСТ » искуственный интилект
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright MyCorp © 2024
!!! На сайте могут находиться статьи, которые, честно и не помню, откуда они у меня появились, одним словом нет информации о первоисточнике и авторе, если на них наткнётся автор, просьба к нему написать мне, чтобы я смог поставить ссылку на источник. !!!