CTRL Opublikowano 13 Grudnia 2009 Opublikowano 13 Grudnia 2009 to mój pierwszy post więc witam wszystkich! od ok. 2 miesięcy bawie sie GM'em. forum obserwuje od dawna a teraz jestem z wami. zabrałem sie za 3D. ale nie wiem jak zrobić z kolizje z modelem. ;/ używałem opcji SZUKAJ. prosze was o pomoc. pozdro
MagnusArias Opublikowano 13 Grudnia 2009 Opublikowano 13 Grudnia 2009 nie jestem dobry w 3D, ale spróbuj kodem na GML if place_meeting(x,y,o_model) { // akcja } gdzie x i y to widok z góry...
CTRL Opublikowano 13 Grudnia 2009 Autor Opublikowano 13 Grudnia 2009 GML //dałem to w collision z modelem czołgu: if place_meeting(x,y,czolg) { speed = 0 } nie działa ;/ sprawdzałem też po prostu kolizja i speed = 0. ale nie działa
Dawidds Opublikowano 13 Grudnia 2009 Opublikowano 13 Grudnia 2009 Samym gmem kolizji pomiędzy modelami nie posprawdzasz. http://gmc.yoyogames.com/index.php?showtopic=329495 http://gmc.yoyogames.com/index.php?showtopic=449508 http://www.google.com/search?hl=en&saf...mp;oq=&aqi=
CTRL Opublikowano 13 Grudnia 2009 Autor Opublikowano 13 Grudnia 2009 coś tam ciekawego jest... ale ja nie potrafie za bardzo rozszyfrować... no wiem, za kolizje odpowiada DLL. ale gdzie on tam jest? dzięki za ciekawe linki popróbowałem coś tam ale nic nie działa
Makary155 Opublikowano 13 Grudnia 2009 Opublikowano 13 Grudnia 2009 Jeżeli w roomie obiekty mają sprity to po aktywacji trybu 3d kolizje powinny działać.
CTRL Opublikowano 13 Grudnia 2009 Autor Opublikowano 13 Grudnia 2009 z jakąś nadzieją zobaczyłem pasek wczytywania i przebiłem czołg na wylot... dupa... dałem sprajta :D i kolizje playera z czołgem i speed = 0... już kilka dni temu sprawdziłem wszystkie opcje jakie przyszły mi na myśl :crying: a ten DLL to bardziej PRO :sp_ike:
MagnusArias Opublikowano 14 Grudnia 2009 Opublikowano 14 Grudnia 2009 No fucktycznie.. Zapomniałem że tyczy sie tylko 2D :jezor: może w O_Player w evencie kolizji o o_czołg te funkcje, które maja być wykonane to może zadziała? :D
Rudy Opublikowano 14 Grudnia 2009 Opublikowano 14 Grudnia 2009 Możesz też zrobić coś w rodzaju BBox* każdego z obiektów. Przykładowo: *Bounding Box - prostopadłościan, którego ściany dotykają krańcowych części obiektu (patrz: właściwości sprite'a) GML (create) bbox_xmin=-10; bbox_xmax=10; bbox_ymin=-10; bbox_ymax=10; bbox_zmin=-10; bbox_zmax=10; // mówimy tutaj o sześcianie 20x20x20 // te zmienne muszą być w każdym sprawdzanym obiekcie // PS: zakładam, że posiadasz zmienną "z".</span> A potem: (obj2 to obiekt, z którym sprawdzamy kolizję) GML (step) if ((x+bbox_xmin<obj2.x+obj2.bbox_xmax || x+bbox_xmax>obj2.x+obj2.bbox_xmin) && (y+bbox_ymin<obj2.y+obj2.bbox_ymax || y+bbox_ymax>obj2.y+obj2.bbox_ymin) && (z+bbox_zmin<obj2.z+obj2.bbox_zmax || z+bbox_zmax>obj2.z+obj2.bbox_zmin)) { ... // akcja kolizji } Jedyny problem w tym, że kolizje będą odbywały się, gdy nie obiekty, ich "prostopadłościany" będą się dobijać. Kolizji kul na przykład tak nie zrobisz. :)
Dawidds Opublikowano 14 Grudnia 2009 Opublikowano 14 Grudnia 2009 Akurat kolizja kul jest banalna - sprawdzamy, czy dystans pomiędzy środkami kul jest mniejszy niż suma ich promieni :P
CTRL Opublikowano 14 Grudnia 2009 Autor Opublikowano 14 Grudnia 2009 ten kod załapałem. ktoś powiedział ze kolizja z 3D to nie taki "orzeszek"... czyli nie za łatwe ;/ ale jakoś ten kod nie zadziałał... właściwie to ja gówno wiem na temat tej kolizji a że kombinuje tydzień to piszę do was :D zrobiłem tak jak kazałeś :( nic tu kurde nie działa! // PS: zakładam, że posiadasz zmienną "z". posiadam, z = 0 czyli "czołg" stoi na ziemi... PS. nie wiem co z tym x min 10 x max 10... nie pasuje ale nie wiem co... a nieważne... :D E@E: powiedzcie mi teraz czemu chodze tylko na boki a nie w przód i w tył!! kurde..................
bartas Opublikowano 14 Grudnia 2009 Opublikowano 14 Grudnia 2009 GML if z<=modelik.zz+277{ x = xprevious; y = yprevious; if (abs(hspeed) >= abs(vspeed) && not place_meeting(x+hspeed,y,modelik)) { x += hspeed; exit; } if (abs(vspeed) >= abs(hspeed) && not place_meeting(x,y+vspeed,modelik)) { y += vspeed; exit; } speed = 0; } ja mam to tak zrobione, znalazłem to w jednym przykładzie bo też sobie nie mogłem poradzić :) aha musisz mieć sprite wielkości modelu a w obiekcie musisz mieć zaznaczone solid ta liczba 277 to wysokość modelu, a zz to to samo co z EDIT: modelik to oczywiście nazwa obiektu z którym kolidujesz, a kod dajesz w evencie colission
CTRL Opublikowano 14 Grudnia 2009 Autor Opublikowano 14 Grudnia 2009 jak mam zmieżyć? na oko bedzie dobrze? E@E yeaaaaa udało sie!! dzięki wam wszystkim! to było trudne zagadnienie a odpowiedź banalna :D dzieki dzięki dzięki! nareszcie Wojna O Sprawiedliwość ruszyła!! dodam 1% więcej.... mały krok dla GM'a, wielki krok dla WOS'u! |L |O |O |K v
bartas Opublikowano 14 Grudnia 2009 Opublikowano 14 Grudnia 2009 ja modele robie w sketchupie i sobie w nim miarką mierzę. Ale jeśli nie przewidujesz że player w grze będzie mógł latać (albo być nad modelami) to możesz usunąć pierwszą linijkę i ostatnią klamrę.
CTRL Opublikowano 14 Grudnia 2009 Autor Opublikowano 14 Grudnia 2009 ja mam model creator i w tym siedze bo łatwe :D tylko tyle co x -x y -y z -z :D to jest cały model creator xD a lepszy ten twój?
bartas Opublikowano 14 Grudnia 2009 Opublikowano 14 Grudnia 2009 nie wiem czy dobry, ale bardzo prosty ;) gdzieś na forum jest skrypt wavefront autorstwa psichixa, który może wczytywać do gry modele wyeksportowane ze sketchupa razem z teksturami :)
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ę