Autor Wątek: Fizyka ciała z kolizja perpixel  (Przeczytany 946 razy)

Offline Frondeus

  • Użytkownik

# Grudzień 01, 2011, 11:52:05
Witam. Tworze coś w rodzaju symulacji/gry gdzie piłka ma się poruszać po mapie ala Wormsy ( 2D ). Mam problem z fizyka, czyli jak poruszać piłka w sposób podobny do rzeczywistego. Mam tu na myśli obrót, tarcie itp.
Niestety nie mogę wykorzystać box2d gdyż obsługuje kształty Max 8 wierzcholkow.

Myślałem nad calkowaniem wzorow dynamiki ciała sztywnego z Perełek Programowania Gier I. Wydaje się być to dobrym pomysłem lecz lekko skomplikowanym. Na szczęście jest przykład na płytce.

Innym pomysłem byłoby tworzenie normalnej do prostej powstałej z kolidujacych pixeli. I na tej podstawie robić odbicie ciała od prostej.

Który sposób jest lepszy? AABB odpada chyba ze aby sprawdzić tylko pobieznie i przejść do per-pixel.
A może istnieje silnik który wspiera kolizje per pixel?
Pracuje głownie Javie. Ale c++ nie pogardze :)

Ps: Wybaczcie brak polskich ogonkow i interpunkcji. Pisanie z iPoda jest męczące. Jak tylko będę mógł to zedytuje posta.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline alexsoft

  • Użytkownik

# Grudzień 01, 2011, 17:03:05
Body w box2d ma liste Fixtures. 1 fixture = 1 polygon. Ale nic nie stoi na przeszkodzie, zeby Body tych fixtures mialo kilka, przez co nie ma problemu z tym, ze mozesz miec tylko 8 wierzcholkow na polygon. Przykładowy kod z mojego projektu:
Vertices w= new Vertices();
w.Add(new Vector2(1125, 162));
w.Add(new Vector2(1074, 185));
..
<duzo wierzchołkow>
..
w.Add(new Vector2(1168, 177));

// pod Body podczepiamy liste Fixture uzyskana poprzez rozbicie wierzcholkow na polygony (osobne fixture)
FixtureFactory.AttachCompoundPolygon(BayazitDecomposer.ConvexPartition(w), 1.0f, <jakies Body>);


Spojrz na jezioro na srodku screena. Sklada sie z kilku poligonow, ale traktowany jest jak jedno cialo.

Kod wrappera box2d moze sie roznic od Twojego. Ten pochodzi z wrappera pod C# (XNA - Farseer Physics)
« Ostatnia zmiana: Grudzień 01, 2011, 17:05:40 wysłana przez alexsoft »

Offline Frondeus

  • Użytkownik

# Grudzień 01, 2011, 20:34:37
Mysle ze sproboje najpierw pomeczyc sie z wzorami samemu (Może się przydać później choćby na studiach). Nie mniej dzięki wielkie za namiary. Najfajniej by było gdyby Team17Codemasters udostępnili kody pierwszych Wormsów (a może są udostępnione i nic o tym nie wiem? )