[java, LWJGL] "Rozglądanie się" w grze FPS- problem


#1

Witam,

od pewnego czasu "majstruję" grę 3d (jak w tytule).

Dokładnie postanowiłem sprawdzić swoich sił w grze FPS. No dobra zrobiłem jako-taki wstępny pokój (w którym zakładam że będzie się chodzić), zrobiłem chodzenie do przodu do tyłu i na boki. Teraz przydałoby się zrobić obracanie i tu zaczyna się problem :frowning: Jak to zrobić?

Dokładnie co chcę wiedzieć:

  1. Jaką funkcją w javie ukryć myszkę (tak jak w większości FPS'ów) oraz w ogóle co zrobić żeby móc się rozglądać?

  2. Jak obliczyć potem pozycję gracza gdy on zechce pójść dosłownie "tam gdzie patrzy"?

Wiem ,że nie będziecie wiedzieli jak mi to wytłumaczyć więc wolałbym jakiś przykład. Najlepiej jakiś prosty #-o

Z góry dzięki!


(Ryan) #2

Musisz rozróżnić dwie rzeczy: kierunek patrzenia i kierunek ruchu. Jeśli chcesz chodzić w kierunku patrzenia, rzutuj wektor normalny do płaszczyzny kamery (kierunek patrzenia) na płaszczyznę powierzchni, znormalizuj go i przemnóż przez prędkość i czas (deltę) między klatkami a otrzymasz wektor ruchu.

Generalnie takie problemy rozwiązuje się sprawdzoną metodą: chwyta się za kartkę, ołówek, i szkicuje, aż zrozumie się problem i znajdzie jego rozwiązanie. :wink:


#3

Sorry, ale twoje wyjaśnienie niewiele mi mówi #-o

Ogólnie "chodzenie w kierunku patrzenia" nie sprawi mi większego problemu, bo mam już gotowy sposób jak to zrobić. Natomiast problemem jest samo rozglądanie. Kompletnie nie wiem jak się za to zabrać :?

Chociaż nie. Już kamię o co biega :slight_smile:

Polcam to: http://aklimx.sppieniezno.pl/nehepl/display.php?id=10


(Ryan) #4

W takim razie zamiast dłubać w przeraźliwie archaicznych tutkach NeHe, powinieneś sięgnąć po podręcznik do algebry liniowej albo dedykowaną grafice 3D książkę. Świetna jest książka Lengyela "Mathematics for 3D Game Programming and Computer Graphics".