Toster Napisano Luty 22, 2009 Zgłoś Share Napisano Luty 22, 2009 Jakos ostatnio wyszlo tak ze potrzebna mi byla metoda sat, i postanowilem sportowac kod Polycolly na Delphi. Wzialem przyklad 7 i przeklepalem go na TD. Ponizej link jakby kogos interesilo. Jesli juz ktos sie zainteresi to od razu ostrzegam ze nie wszystko wyglada na dobrze dzialajace, wiec jak ktos bedzie na tyle szalony aby pogrzebac w tym i znajdzie jakies babole to chetnie zalacze jego patch. Tutaj zrodelka: http://thetosters.pl/metoda_sat Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Spider100 Napisano Luty 22, 2009 Zgłoś Share Napisano Luty 22, 2009 Hmmm ale się napracowałeś ostro muszę przyznać Też kiedyś z tego tutorialu pisałem SAT tyle że z własnymi poprawkami pod gotowy silnik fizyczny i bardzo przebudowany. Jeśli chcesz mogę Ci podrzucić źródła phyluma2D tam wszystko działa ok to sobie poprzeglądasz. Komentarzy dla kolizji jest bardzo dużo to może coś da się z tego wyciągnąć. Ogólnie metodę opisaną w tym tutorialu można bardzo uprościć Przeglądałem kod ale jest tego dożo i musiał bym się bardziej zagłebić, może troche później www.spider.dathox.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Luty 22, 2009 Autor Zgłoś Share Napisano Luty 22, 2009 Dzieki pomocy kompustelnika mamy ciut nowsza wersje, a w niej: - Zmodyfikowany plik MyVector.pas - Podpięcie pod OpenGL - Zmodyfikowany sposób renderingu Spider: zbieram kod moze kiedys do czegos mi sie przyda, przy czym od razu mowie ze GPL mnie tylko interesi Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
kompustelnik Napisano Luty 22, 2009 Zgłoś Share Napisano Luty 22, 2009 Elo. Jeśli komuś się ma przydać to łapcia: Physic.pas Taki mały dodatek Pozdrawiam Edit: Przykład wykorzystania jakby co //Inicjalizacja: World:= TWorld.Create(Vector(0.0, 9.80665), 0.55, 0.4, 0.2); dbg_UseFriction:= True; SetLength(Shape, 5); Shape[0]:= Vector(-16.0, -16.0); Shape[1]:= Vector(16.0, -16.0); Shape[2]:= Vector(16.0, 16.0); Shape[3]:= Vector(-16.0, 16.0); Shape[4]:= Vector(-24.0, 0.0); body:= TSATBody.Create(Shape, 10); body.Position:= Vector(128.0, 128.0); World.AddBody(body); Shape:= nil; SetLength(Shape, 4); Shape[0]:= Vector(0.0, 0.0); Shape[1]:= Vector(320.0, 64.0); Shape[2]:= Vector(320.0, 96.0); Shape[3]:= Vector(0.0, 96.0); body:= TSATBody.Create(Shape, 0.0); body.Position:= Vector(0.0, 320.0); World.AddBody(body); Shape[0]:= Vector(0.0, 0.0); Shape[1]:= Vector(256.0, 0.0); Shape[2]:= Vector(256.0, 32.0); Shape[3]:= Vector(0.0, 32.0); body:= TSATBody.Create(Shape, 0.0); body.Position:= Vector(320.0, 384.0); World.AddBody(body); //********************************************* //Rendering(tylko OGL) For i:= 0 to World.GetNumBodies -1 do World.DrawBody(World.GetBody(i)); //********************************************* //W pętli głównej World.Update(dt); Pisze programy na zlecenia. Tanio! Delphi, Pascal. Kontakt: - (gg) 736483 - (email) kondor20@op.pl light92@o2.pl - Strona domowa Wszystko do uzgodnienia. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.