искуственный интилект
|
|
rapivay | Дата: Вторник, 11.10.2011, 15:32 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 108
Награды: 4
Репутация: 10
Статус: Offline
Награды
| Доброго времени суток!Такой вопрос,как понятно из темы,возможен ли 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
Награды
| Спасибо фобос!Надо както чтобы он ещё отслеживал координаты персоонажа,тоесть он движется на персоонажа.Ах да ещё надо чтобы он видел персоонажа,попадаем в поле зрения и враг "активируется "! Если всё это сделать то можно замутить игру наподобие обителя зла 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
Награды
| Попробую расписать:герой идёт по сцене,попадает в поле зрение врага и тот движется на героя,когда враг приближается вплотную он наносит атаку. Добавлено (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
Награды
| 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
Награды
| да это не я сделал)
.
|
|
|
|
FobosMaster | Дата: Четверг, 13.10.2011, 15:12 | Сообщение # 10 |
Группа: Проверенные
Сообщений: 62
Награды: 1
Репутация: 9
Статус: Offline
Награды
| да это я понял!))) просто я имел в виду, что если плотно заняться этой ситуацией, то из моего примера получится как раз похожее на этот код))
Модераторы в челябинске настолько суровы.. Нет, они вас не банят, они приходят к вам домой и раскалывают череп..
|
|
|
|
|