Kolizja ze ścianą, która jest prostą nieskończoną
Ostatnio zmodyfikowano 2015-01-24 03:21
wiktor12348 Temat założony przez niniejszego użytkownika |
Kolizja ze ścianą, która jest prostą nieskończoną » 2015-01-23 23:47:31 Witam, Potrzebuję kolizje ze ścianą. U mnie ściana to współrzędne prostej, wyliczam sobie postać ogólną itp oraz odległość prostej od punktu, ale jak wiadomo, proste są "nieskończone". Jak to graniczyć? Coś takiego mam. Czarne linie to ściany w reprezentacji prostych, ale jak ściana się kończy to prosta "idzie dalej". Jest pewnie jakieś banalne rozwiązanie, bo to naprawić? |
|
Piastlis |
» 2015-01-24 01:38:47 Najpierw sprawdzasz czy w następnym ruchu element ruchomy wchodzi w "zakazane pole" np y>y_prostej1 i x>x_prostej2 a potem do której ma bliżej.Ewentualnie róg jak chcesz inaczej go zainplementować. |
|
DejaVu |
» 2015-01-24 03:21:09 Najprościej będzie jeżeli ściany zrobisz z prostokątów i tym samym będziesz sprawdzał czy prostokąty na siebie nachodzą. Druga prosta opcja: użyć silnika typu Box2D, który załatwia sprawy kolizji za Ciebie w dość przyzwoity sposób. Trzecia opcja: podumać sobie nad algorytmem do stwierdzania czy dwa odcinki się przecinają. Czwarta opcja: podumać nad algorytmem, który będzie zwracał punkt przecięcia dwóch prostych (o ile nie są do siebie równoległe). Piąta opcja: jeżeli ściana jest równoległa lub prostopadła to wystarczy napisać: if( obiekt.x > sciana.x + obiekt.promien && obiekt.x + obiekt.delta.x < sciana.x + obiekt.promien ) obiekt.x = sciana.x + obiekt.promien; else obiekt.x += obiekt.delta.x;
|
|
« 1 » |