Skocz do zawartości

Ogre3D


Rekomendowane odpowiedzi

Mam problem z kolizją przy użyciu prostych funkcji Ogre'a. Chcę, aby obiekt "camera" w kontakcie z kilkoma, wybranymi entity (np. "RoomA", "RoomB") wykonywał "JakasAkcja()". Użyłem funkcji "CollidesWithObject()" i pomimo różnych ustawień dla argumentu maski skrypt wykonuje się dla kolizji ze wszystkimi obiektami na mapie a nie tylko tymi, które wskazałem. Nie wiem - może złe wartości podaje do argumentu, więc prosiłbym żeby mi ktoś to rozjaśnił, ewentualnie podał inne rozwiązanie problemu (najważniejsze żeby działało tylko dla kilku określonych modeli).

Odnośnik do komentarza
Udostępnij na innych stronach

Zobacz sobie jak jest w przykłądzie z fizyką z tymi kartonami, tam jest kolizja w wyniku której karton zmienia kolor.

Nie bawiłem się z tym za dużo ale wiem że do tego używa się funkcji z fizycznym materiałem, zobacz w dokumentacji ogra.

Odnośnik do komentarza
Udostępnij na innych stronach

Ta kolizja materiałów działa tylko jak się używa newton physics. Używałem tego w swoim pongu do odróżnienia powierzchni na jaką piłka upada by zmieniać odgłos odbicia.

 

Prawda jest taka że OGRE3D to tylko silinik graficzny i nie ma żadnych super funkcji do obliczania kolizji, dlatego port Ogra dla GM jest połączony z newton physics. Ale od razu muszę ostrzec że w GM8 silnik fizyczny nie zawsze inicjuje się tak jak byśmy tego chcieli a w GM8.1 w ogóle nie działa. Miałem niemałe urwanie głowy z tym pongiem gdy fizyka się rypała tylko dlatego że do paczki z grą dołączyłem nowy materiał czy inne jakieś cudo.

Odnośnik do komentarza
Udostępnij na innych stronach

Po wielu próbach udało mi się znaleźć rozwiązanie, które jest dość proste. Każdy utworzony obiekt zostaje już automatycznie przypisany do wszystkich 32 masek, jakie oferuje Ogre3D. Stąd niezależnie jaką wpisałem liczbę, funkcja zwracała mi wartość 1. Jedynym rozwiązaniem jest chyba ręczne przypisanie każdego obiektu do jakieś jednej maski, co przy dużej ich liczbie jest bardzo nieporęczne... ale grunt, że działa :D

Dzięki Nirvan i HuderLord za zainteresowanie tematem :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...