Autor Wątek: Ruch węża w przestrzeni 3d  (Przeczytany 940 razy)

Offline Razi

  • Użytkownik

# Grudzień 07, 2009, 22:31:41
Pomagam kumplom pisać pewną gierkę, właściwie to jeszcze nie zaczęli, bo leżą na pewnym problemie:
Piszą gierkę w stylu Snake, tyle że w przestrzeni trójwymiarowej, gdzie wąż, albo raczej bardziej pasuje - glizda - porusza się we wszystkich trzech wymiarach. Ruch podobny do statku kosmicznego w przestrzeni kosmicznej
Ruch ma wyglądać podobnie jak w tej gierce: http://www.zonep2p.pl/shot/snake3d_Linux.jpg, tylko że obrót o dowolny kąt.
najlepiej jakby to wyglądało jak w Starmageddonie 2, gdzie można było obracać się we wszystkich osiach.

Konkretnie.
W OpenGL jest coś takiego jak obracanie macierzy, tzn. punt znajduje się w przestrzeni 1;0;0, obraca się o 90 stopni Z i znajduje się w punkcie 0;1;0.
Z obrotami w 2 wymiarach jakoś sobie radzę, ale na 3 wymiary nie mam pomysłu.
Załóżmy że mam klasę wektora, która ma wszystkie potrzebne operatory i mam zapisane takie wektory z punktami położenia głowy węża, oraz jego aktualnym kierunku (wektor prędkości, np. przed siebie: 0;1;0, który przy ruchu się dodaje do wektora pozycji), oraz dane o naciśniętych przyciskach (key[LEFT/RIGHT/UP/DOWN])

Wektora mam z nowego Qt, oferuje wszystkie operatory, normalizację, długość w przestrzeni od 0;0;0 do x;y;z, oraz inne bzdety jak odległość od linii, czy powierzchni.

Offline Mr. Spam

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

Offline _OskaR

  • Użytkownik

# Grudzień 07, 2009, 22:49:24
Poczytaj o macierzy obrotu. Na forum jest nawet implementacja.

Offline micran

  • Użytkownik
    • Micran - Warsztat

# Grudzień 07, 2009, 22:52:03
Szczerze to dziwnie by się grało w takiego snake w 3 wymiarach i widokiem takim pod kątem spoza planszy. Ja proponowałbym zrobić kamerkę w miejscu głowy węża, wtedy to i zręcznościówka mogłaby być :D w zależności od szybkości.

Obracanie w 3 wymiarach.. hmm.. może najpierw w tych dwóch a później o ten 3 ? (To tylko sugestia nie znam się za  bardzo na 3D)

Offline Razi

  • Użytkownik

# Grudzień 08, 2009, 00:25:50
No właśnie kamera będzie z głowy węża. Byłaby dobra rozrywka multiplayer:D

Nie wiedziałem pod jakim hasłem tego szukać, a obracanie macierzy mi się kojarzyło zawsze z obracaniem układu współrzędnych.
Właśnie zauważyłem, że Qt 4.6 oprócz optymalizacji, QML, Vectorów, efektów graficznych, menedżera Shaderów, przyniosło także macierze z metodami m.in. rotate:D link: http://doc.qt.nokia.com/4.6/qmatrix4x4.html
czym jeszcze mnie nowa wersja zaskoczy?