apollo11 Opublikowano 10 Maja 2012 Udostępnij Opublikowano 10 Maja 2012 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 Więcej opcji udostępniania...
Nirvan Opublikowano 11 Maja 2012 Udostępnij Opublikowano 11 Maja 2012 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 Więcej opcji udostępniania...
I am Lord Opublikowano 11 Maja 2012 Udostępnij Opublikowano 11 Maja 2012 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 Więcej opcji udostępniania...
apollo11 Opublikowano 12 Maja 2012 Autor Udostępnij Opublikowano 12 Maja 2012 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę