Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

[GLScene] FPSMovementManager   Найти похожие ветки 

 
Домовенок   (2004-10-30 23:52) [0]

Знатоки GLScene, подскажите. Как можно посредством FPSMovementManager узнать, что произошло столкновение и с каким именно объектом. Желательно получить имя объекта, с которым произошло столкновение. Может быть, есть какая то функция или событие, которое позволяет узнать сей факт. Думал выкрутиться при помощи CollisionManager но он при большом количестве объектов вызывает тормоза. Так что он тут не в силах помочь. Заранее благодарю.


 
Кто---то ©   (2004-10-31 02:59) [1]


> Как можно посредством FPSMovementManager узнать, что произошло
> столкновение и с каким именно объектом.

Не знаю.


> Думал выкрутиться при помощи CollisionManager но он при
> большом количестве объектов вызывает тормоза.

Выкрутиться можно и так : http://dcegame.narod.ru/dcegame.html
При 8 монстрах тормозов особых нет.


 
Домовенок   (2004-10-31 07:22) [2]

К сожалению, при попытки запуска откомпилированного *.exe вылетала ошибка "недопустимое значение". После чего вся программа успешно рушилась. Качал оба архива, пробовал совмещать, один фиг. В исходниках не было времени порыться, позже посмотрю, чем это вызвано. Может быть ты кто---то знаешь в чем проблема этой ошибки. Очень мне интересно посмотреть, как выглядят в этой демки коллизии и как вы делаете проверку.


 
Colt1978   (2004-10-31 14:28) [3]

Всё просто в ini файлах нужно все значения с запятыми заменить на аналогичные но с точками....

Вопрос автору: Зачем ты это сделал ?


 
DeadMeat ©   (2004-10-31 19:25) [4]


Как можно посредством FPSMovementManager узнать, что произошло столкновение и с каким именно объектом

Это можно с помощью DCE сделать. В ГЛСцене есть дема для этого.


 
Кто---то ©   (2004-11-01 01:59) [5]


> Домовенок   (31.10.04 07:22) [2]
>  Может быть ты кто---то знаешь в чем проблема этой ошибки.

Если бы знал, то исправил бы. У меня они не возникают. Дельфи семь.
Запускай исходник в пошаговом режими, кнопками F7 и F8, чтобы отследить конкретное место.
Возможно // Load Terrain стоит вытащить в начало OnCreate. Возможно стоит таймер изначально отключать, а запускать в конце OnCreate.
Заменять точки на запятые не пробовал, потому, что и так работает.


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

См. исходник. Может как его разовьёшь.


> Colt1978   (31.10.04 14:28) [3]
> Всё просто в ini файлах нужно все значения с запятыми заменить
> на аналогичные но с точками....
>
> Вопрос автору: Зачем ты это сделал ?

Чти именно ?
Так работают функции Position.AsString и им подобные. Вопрос к Эрику Гранжу.


 
Кто---то ©   (2004-11-03 02:05) [6]

Функция замены запятых на точки :

 function ReplaceCommaToPoint(const s : string) : string;
 var
   i : Integer;
 begin
   Result := s;
   for i := 1 to Length(Result) do
    if Result[i] = "," then Result[i] := ".";
 end;


 
Домовенок   (2004-11-03 09:28) [7]

Заменил я все запятые на точки, другие ошибки стали выскакивать. Отключил процедуры загрузки конфигов проблем не стало. Только пустыня сплошная. Думаю, что как только найдется время, немного переделаю этот пример для более надежной загрузки, да и вообще посмотрел на код... Думал, что я не аккуратно пишу... А оказалось что не я один :)

Что касается DCE, нашел, разобрался. Всеравно выходит как-то глючновато, притормаживает, хотя может быть у меня модели не правильные. Буду еще смотреть. Нашел демку в стандартном наборе GLScene "boxedin", там вроде коллизии осуществляются без всяких менеджеров, руки еще не дошли её по косточкам разобрать. Все времени не хватает.

По DCE возник такой вопрос, хочу к примеру что бы у меня GLCube1 проверялся на коллизии с другими объектами, выбираю его, добавляю ему в behaviours > Dynamic Collision > Выбираю менеджер, IsDynamic в True, запускаю пример, кубика нет. Он становится не визуальным, соответственно и коллизий никаких не проверяется. Может быть, кто сталкивался? Что делаю не так? А если цеплять на "кубышку" (контейнер) содержащий в себе несколько моделей, с которыми нужно проверять коллизии, то они немного подглюкивают, коллизия с объектом может происходить, хоть и персонаж далеко от этого объекта. Хотя я сейчас думаю, что может быть дело и не в менеджере, а в моделях. Переделываю модели. Там видно будет.


 
DeadMeat ©   (2004-11-03 19:34) [8]

Он не становится не визуальным. Он видим, только вот начинает лететь кудато. Это глюк DCE. Попробуй на него (или лучше в него) камеру воткнуть и увидишь... Надо там с какимито параметрами поиграться и чтобы манагер один у всех был. Вроде так я исправлял. Да и ставь форму для проверки столкновений только либо Sphere/Terrain/FreeForm. Другие не пашут...

---
...Death Is Only The Begining...


 
FRick ©   (2004-11-03 20:31) [9]

Когда открываю демку в Delphi 6 то он пишет чт нет TGLDCEManager
что делать!


 
Кто---то ©   (2004-11-04 01:32) [10]


> Домовенок   (03.11.04 09:28) [7]
> Заменил я все запятые на точки, другие ошибки стали выскакивать.

В каких именно строках ???

Ставиш на первой строчке кода в OnCreate брэйкпоинт кнопкой F5. И когда программа на этой строке остановится, нажимаеш F7, F7, F7, выполняя код пошагово. Ту строку на которой возникает ошибка запости сюда.


> Думаю, что как только найдется время, немного переделаю
> этот пример для более надежной загрузки

Надеюсь это не пустые слова.


> посмотрел на код... Думал, что я не аккуратно пишу... А
> оказалось что не я один :)

Учту, что ты любитель оплёвывать мой код.


> FRick ©   (03.11.04 20:31) [9]
> Когда открываю демку в Delphi 6 то он пишет чт нет TGLDCEManager
> что делать!

Возможно обновить версию с сорсфоржа. DCE появился сравнительно недавно.


 
Домовенок   (2004-11-04 21:02) [11]

С DCE так и не разобрался. Больно глючный он. В общем, решил свою задачу разобрав демку из стандартного набора GLScene, называется вроде "inbox". Вообще так то и FPSManager подходил, просто нужно было узнавать с какими объектами происходит столкновение.

> Кто---то (04.11.04 01:32) [10]
В каких именно строках ???


Не знаю, не разбирался, где-то в загрузке данных из конфигов. Убрал загрузку конфигов, проблем не стало.

> Учту, что ты любитель оплёвывать мой код.

Я не любитель "оплевывать" твой код. Что много раз оплевывал? :) Просто покопавшись в исходниках сразу видно, что «писака» не очень аккуратен :). Приходится внимательно все просматривать, что бы сообразить. Но это не важно. Извини, я не хотел тебя обидеть.

> Надеюсь это не пустые слова.

Я тоже надеюсь. В целом там переделать загрузку из файлов дело не долгое, много раз уже это приходилось делать. Просто сейчас времени маловато. Вот с работой немного расквитаюсь, и на выходных поковыряю.


 
FRick ©   (2004-11-06 19:34) [12]

Как настройть CVS ?



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.04 c
1-1106498375
Grigoryan
2005-01-23 19:39
2005.02.06
Показывать окно с сообщением сразу после появления главного окна


1-1106276122
Mih
2005-01-21 05:55
2005.02.06
Bitmap


4-1103018387
Phantomouse
2004-12-14 12:59
2005.02.06
COM+Я = Программа виснет ?!?


14-1106043390
Fre=
2005-01-18 13:16
2005.02.06
Ищу песня


1-1106730582
SashkoSoft
2005-01-26 12:09
2005.02.06
Достать ресурс из dll





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский