Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 08.03.2012, 17:50   #1
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Поле зрения врага

У меня есть игрок и враг, выполняющий определённый набор действий(патруль). Мне нужно каким-то образом задать поле зрения врагу, в котором он сможет видеть игрока и реагировать, но при этом если между ними стоит стена, то реакции врага на игрока нет.
Как мне этого добиться?
(Offline)
 
Ответить с цитированием
Старый 08.03.2012, 18:12   #2
pepel
Мастер
 
Аватар для pepel
 
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений
(для 2,526 пользователей)
Ответ: Поле зрения врага

вообще я бы использовал для поля зрения обьемный триугольник.
т.е. прикребляешь меш-триугольник , одной из точек является сам враг. ну тоесть прикрепить к этой точке триугольник.

затем проверяешь c помощью функции meshintersect пересечение объекта игрока и триугольника.

также если есть стена используй linepick
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Devilox (08.03.2012)
Старый 08.03.2012, 20:24   #3
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Поле зрения врага

Наверное, лучше сразу начать использовать один (из четырёх) физический движок.
Я пробовал вражеское зрение-детектор на :
Bullet Physics wrapper
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Devilox (08.03.2012)
Старый 12.04.2012, 20:12   #4
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Поле зрения врага

Походу есть ещё вариант: EntityVisible(ent,dest_ent)
только для этого надо стенам добавить EntityPickMode - это чтобы враг сквозь стены не подглядывал
А что касается угла обзора, то вот я вытащил из обучалки BlitzSchool:
If (180 - Abs( DeltaYaw(aEnemies(i)\enemysphere, player))) < 100
Пока работает, может быть кто знает, какие здесь минусы есть?
(Offline)
 
Ответить с цитированием
Старый 13.04.2012, 05:21   #5
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Поле зрения врага

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


Опции темы

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

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


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com