IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
Поле видимости в играх, Все кто может помочь, вам сюда.
CAXAP
сообщение 10.12.2004, 9:38
Сообщение #1


Активный участник
***

Группа: Пользователи
Сообщений: 107
Регистрация: 11.11.2004
Из: Элиста
Пользователь №: 127



Как можно на Dark Basic'e создать поле видимости. Чтобы учитывалась не только матрица, но и загруженные объекты *.3ds либо *.x. А так же функция использовалась не только для игрока, но и для врагов.


--------------------
Не спорь! Сахар белый!
ﻄﻀﺼﺽﺸﺹﺶﺳﺷﻑﻉﻙﻖﻖﻏﺱﺶﺻﺺﺽﻆﻡﻩ
Перейти в начало страницы
 
+Цитировать сообщение
Kolyanoid
сообщение 10.12.2004, 11:11
Сообщение #2


. . .-= SPK Games =-. . . Модератор v3.2 alpha . . Linuxoid v0.5
***

Группа: Администраторы
Сообщений: 3521
Регистрация: 1.9.2004
Из: Москва
Пользователь №: 15



Это математика... Вот только ДБ стоко много иатематики, наверно, не потянет. Нужно ДЛЛ делать...


--------------------
Мои координаты:
  • Jabber: kolyanoid@jabber.ru
  • Почта: kolyanoid [at] mail333.com
  • Вконтакте: id64896
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен». (Альберт Эйнштейн)
Перейти в начало страницы
 
+Цитировать сообщение
lucky
сообщение 10.12.2004, 16:45
Сообщение #3


Активный участник
***

Группа: Пользователи
Сообщений: 769
Регистрация: 4.10.2004
Пользователь №: 85



ББ:
EntityVisible(entity,cel) = false\true. Учитывается "затенение" другими объектами , объекты легко добавляются и удаляются в список "затеняющих".
EntityPickMode terrain,2,1 - тип проверки "полигон", затенение есть
EntityPickMode terrain,2,0 - тип проверки "полигон", , затенения нет
(в порядке рекламы) biggrin.gif
Перейти в начало страницы
 
+Цитировать сообщение
versus
сообщение 10.12.2004, 20:38
Сообщение #4


Digital Mystery
***

Группа: Пользователи
Сообщений: 802
Регистрация: 1.9.2004
Из: Санкт-Петербург
Пользователь №: 9



Цитата(lucky @ Dec 10 2004, 05:45 PM)
ББ:
EntityVisible(entity,cel) = false\true. Учитывается "затенение" другими объектами , объекты легко добавляются и удаляются в список "затеняющих".
EntityPickMode terrain,2,1  - тип проверки "полигон", затенение есть
EntityPickMode terrain,2,0  - тип проверки "полигон", , затенения нет
(в порядке рекламы)  biggrin.gif
*

А нам не эта видимость нужна!! dry.gif


--------------------
:: exclusive reality for you ::

фрОМ раШа виЗ пАнк
Перейти в начало страницы
 
+Цитировать сообщение
lucky
сообщение 11.12.2004, 1:21
Сообщение #5


Активный участник
***

Группа: Пользователи
Сообщений: 769
Регистрация: 4.10.2004
Пользователь №: 85



Цитата(versus @ Dec 10 2004, 08:38 PM)
А нам не эта видимость нужна!! dry.gif
*

Тогда другая простая команда:
EntityDistance(entity,cel)
Работает быстро, четко и точно biggrin.gif
Перейти в начало страницы
 
+Цитировать сообщение
versus
сообщение 11.12.2004, 15:00
Сообщение #6


Digital Mystery
***

Группа: Пользователи
Сообщений: 802
Регистрация: 1.9.2004
Из: Санкт-Петербург
Пользователь №: 9



Цитата(lucky @ Dec 11 2004, 02:21 AM)
Тогда другая простая команда:
EntityDistance(entity,cel)
Работает быстро, четко и точно  biggrin.gif
*


Растояние до объекта без труда вычесляется и на ДБ!


--------------------
:: exclusive reality for you ::

фрОМ раШа виЗ пАнк
Перейти в начало страницы
 
+Цитировать сообщение
lucky
сообщение 11.12.2004, 18:20
Сообщение #7


Активный участник
***

Группа: Пользователи
Сообщений: 769
Регистрация: 4.10.2004
Пользователь №: 85



Цитата(versus @ Dec 11 2004, 03:00 PM)
Растояние до объекта без труда вычесляется и на ДБ!
*

Тогда какое вам еще "поле видимости" нужно ? blink.gif
Перейти в начало страницы
 
+Цитировать сообщение
Kolyanoid
сообщение 11.12.2004, 23:33
Сообщение #8


. . .-= SPK Games =-. . . Модератор v3.2 alpha . . Linuxoid v0.5
***

Группа: Администраторы
Сообщений: 3521
Регистрация: 1.9.2004
Из: Москва
Пользователь №: 15



Задаешь объекту поле видимости (угол обзора и расстояние) и проверяешь, попадают ли в него другие объекты. Вот такой, как я понял (в Comandos играл?) smile.gif

Я и говорю, что ето математика.


--------------------
Мои координаты:
  • Jabber: kolyanoid@jabber.ru
  • Почта: kolyanoid [at] mail333.com
  • Вконтакте: id64896
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен». (Альберт Эйнштейн)
Перейти в начало страницы
 
+Цитировать сообщение
lucky
сообщение 12.12.2004, 0:51
Сообщение #9


Активный участник
***

Группа: Пользователи
Сообщений: 769
Регистрация: 4.10.2004
Пользователь №: 85



Цитата(Kolyanoid @ Dec 11 2004, 11:33 PM)
Задаешь объекту поле видимости (угол обзора и расстояние) и проверяешь, попадают ли в него другие объекты. Вот такой, как я понял (в Comandos играл?) smile.gif

Я и говорю, что ето математика.
*

Еще ОДНА команда :
DeltaYaw# ( entity,cel ) возвращает угол, на который должен быть повернуть объект, чтобы смотреть на цель. Т.е. только проверяй чтобы этот угол был в определенных рамках и все. Только одна строчка, никакой математики biggrin.gif
Перейти в начало страницы
 
+Цитировать сообщение
Kolyanoid
сообщение 12.12.2004, 7:33
Сообщение #10


. . .-= SPK Games =-. . . Модератор v3.2 alpha . . Linuxoid v0.5
***

Группа: Администраторы
Сообщений: 3521
Регистрация: 1.9.2004
Из: Москва
Пользователь №: 15



Блин, у нас тоже есть такая, но более функциональная.
ATANFULL(Xdist#,Zdist#)
Возвращает угол между двумя точками, основываясь на расстоянии между ними по осям. Ну дык нужно ето в цикле перебирать все объекты для большинства из них (т.е. один объект перебирает все объекты, потом следующий)... Два больших вложенных цикла - это не лучший вариант для ДБклассикоской игры. Нужна ДЛЛ.


--------------------
Мои координаты:
  • Jabber: kolyanoid@jabber.ru
  • Почта: kolyanoid [at] mail333.com
  • Вконтакте: id64896
«Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен». (Альберт Эйнштейн)
Перейти в начало страницы
 
+Цитировать сообщение
Sir Lesro
сообщение 14.12.2004, 10:21
Сообщение #11


Активный участник
***

Группа: Пользователи
Сообщений: 89
Регистрация: 15.11.2004
Из: Калмыкия, Элиста
Пользователь №: 131



CAXAP
Поросенок ты ентакий. Ты чего тут делаешь? Мы же сейчас не над этим работаем. Давайка дружно все делать.


--------------------
Программа делает то, что вы приказали ей сделать, а не то, что вы хотели, чтобы она сделала.
"Третий закон Грира"
Перейти в начало страницы
 
+Цитировать сообщение
CAXAP
сообщение 14.12.2004, 13:17
Сообщение #12


Активный участник
***

Группа: Пользователи
Сообщений: 107
Регистрация: 11.11.2004
Из: Элиста
Пользователь №: 127



Цитата(Sir Lesro @ Dec 14 2004, 11:21 AM)
CAXAP
Поросенок ты ентакий. Ты чего тут делаешь? Мы же сейчас не над этим работаем. Давайка дружно все делать.
*


Дружности мне не занимать. А вот кто из нас поросенок...
А тему я создал только ради собственного интереса. Она никак не относится к проекту.


--------------------
Не спорь! Сахар белый!
ﻄﻀﺼﺽﺸﺹﺶﺳﺷﻑﻉﻙﻖﻖﻏﺱﺶﺻﺺﺽﻆﻡﻩ
Перейти в начало страницы
 
+Цитировать сообщение
CAXAP
сообщение 28.12.2004, 14:22
Сообщение #13


Активный участник
***

Группа: Пользователи
Сообщений: 107
Регистрация: 11.11.2004
Из: Элиста
Пользователь №: 127



Помоему вы все-таки не поняли основную цель темы!
Я спрашивал про поле видимости не только связанную с матрицей или вообще без препятствий. Главной целью моего воспроса узныть, как создавать поле видимости при находжении в уровне, который сделан цельным объектом в формате *.X(как в action) и с присоединенными в уровень матрицами.
В принципе недавно у меня родился алгоритм решения этой задачи, который и хочу вам предоставить. К сожалению, кода пока нет, т.к. я сейчас занял над совершенно другим проектом, но по его завершению я обязательно выложу исходник здесь.
Ну а пока предоставляю вашему вниманию алгоритм:
1)В перыую очередь необходимо найти статью по структуре файла *.x, которых в Инете полным-полно.
2)Опираясь на статью, считать из файла уровня все вершины и их связи, зенеся координаты в двумерный массив.
3)Проверить принадлежность точек экрану либо невидимых точек принадлежащих связям видимых.
4)Проверить дистанцию до ближайших точек и точек, принадлежащие связям ближних точек.
5)По полученным точкам и связям между ними, создаем уравнения связей и после превращаем их в неравенства.
6)В случае если фигура не замкнута, то проводим из конечной точки перпендикуляр к полу.(возможны другие варианты)
7)Проверяем положение объекта(который проверяем на видимость), т.е существуют между ли между полученной фигурой и объектом точки или связи.
8)Проверяем принадлежность объекта полученной фигуре из неравенств.

Не знаю выложил ли я основную мысль в этом алгоритме? А так же я написал алгоримт только для игрока, т.е. проверяется видит ли игрок какой-то определенный объект. Если кто понял основную мысль алгоритма, то ему вполне будет не сложно сделать и для бота, при помощи испускания лучей от объекта в точки уровня.
Возможно кто-то сможет руководствуясь моим алгоритмом создать программный код и я надеюсь он выложит исходник на этой теме, после чего его можно будет сравнить с исходниками других программеров либо дождаться моего кода и сравнить с ним.


--------------------
Не спорь! Сахар белый!
ﻄﻀﺼﺽﺸﺹﺶﺳﺷﻑﻉﻙﻖﻖﻏﺱﺶﺻﺺﺽﻆﻡﻩ
Перейти в начало страницы
 
+Цитировать сообщение
Sefirot
сообщение 28.12.2004, 14:45
Сообщение #14


/!\ инквизитор /!\
***

Группа: Пользователи
Сообщений: 1769
Регистрация: 1.9.2004
Из: Мидгар
Пользователь №: 13



Цитата
1)В перыую очередь необходимо найти статью по структуре файла *.x, которых в Инете полным-полно.

Не парься, все данные объекта о вершинах и не только, можно узнать через memblock. А математику лучше юзать через dll.


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
CAXAP
сообщение 29.12.2004, 9:59
Сообщение #15


Активный участник
***

Группа: Пользователи
Сообщений: 107
Регистрация: 11.11.2004
Из: Элиста
Пользователь №: 127



Цитата(Sefirot @ Dec 28 2004, 03:45 PM)
Не парься, все данные объекта о вершинах и не только, можно узнать через memblock. А математику лучше юзать через dll.
*


Ну да! Так я прям и умею DLL создавать.


--------------------
Не спорь! Сахар белый!
ﻄﻀﺼﺽﺸﺹﺶﺳﺷﻑﻉﻙﻖﻖﻏﺱﺶﺻﺺﺽﻆﻡﻩ
Перейти в начало страницы
 
+Цитировать сообщение
Sefirot
сообщение 29.12.2004, 11:35
Сообщение #16


/!\ инквизитор /!\
***

Группа: Пользователи
Сообщений: 1769
Регистрация: 1.9.2004
Из: Мидгар
Пользователь №: 13



Это на много легче чем ты думаешь smile.gif Чуть позже создам топик в котором объясню - что и где.


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
Sir Lesro
сообщение 3.1.2005, 11:05
Сообщение #17


Активный участник
***

Группа: Пользователи
Сообщений: 89
Регистрация: 15.11.2004
Из: Калмыкия, Элиста
Пользователь №: 131



Цитата(Sefirot @ Dec 29 2004, 11:35 AM)
Это на много легче чем ты думаешь smile.gif Чуть позже создам топик в котором объясню - что и где.
*

Лучшеб помог парню Dll написать, чем топик выпускать. tongue.gif


--------------------
Программа делает то, что вы приказали ей сделать, а не то, что вы хотели, чтобы она сделала.
"Третий закон Грира"
Перейти в начало страницы
 
+Цитировать сообщение
Sefirot
сообщение 3.1.2005, 12:15
Сообщение #18


/!\ инквизитор /!\
***

Группа: Пользователи
Сообщений: 1769
Регистрация: 1.9.2004
Из: Мидгар
Пользователь №: 13



Ага, а может ещё дать и ключик от квартиры где деньги лежат? biggrin.gif А потом помочь их вынести? biggrin.gif


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
Sir Lesro
сообщение 8.1.2005, 12:07
Сообщение #19


Активный участник
***

Группа: Пользователи
Сообщений: 89
Регистрация: 15.11.2004
Из: Калмыкия, Элиста
Пользователь №: 131



Цитата(Sefirot @ Jan 3 2005, 12:15 PM)
Ага, а может ещё дать и ключик от квартиры где деньги лежат? biggrin.gif А потом помочь их вынести? biggrin.gif
*


Ну такую помошь лучше мне окажи. laugh.gif


--------------------
Программа делает то, что вы приказали ей сделать, а не то, что вы хотели, чтобы она сделала.
"Третий закон Грира"
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 20.11.2017, 14:33
 X 
Ссылки на работы форумчан:
1. Cайт по использованию 3D технологий
в образовании

2. 15 Defense. Underwater Battle

3. GlaZ в Steam Greenlight