Skocz do zawartości
Zaloguj się, aby obserwować  
Adrian B.

[OpenGl][Delphi] - poruszanie sie po terenie 3D

Polecane posty

Witam,

Próbuje stworzyć pewną gierkę 3d za pomocą OpenGl. Zasada jaką przyjąłem to : świat nieruchomy, widok bohatera w pierwszej osobie za pomocą gluLookAt() i mam pewien problem. Oprogramowałem juz takie klawisze jak:

 

w, s - przód / tył :

 

if(key = ord('W')) then
begin
  poz.x := poz.x + lx/10;
  poz.z := poz.z + lz/10;
end;

if(key = ord('S')) then
begin
  poz.x := poz.x - lx/10;
  poz.z := poz.z - lz/10;
end;

gluLookAt(poz.x,0,poz.z,poz.x+lx,ly,poz.z+lz,0,1,0);

 

I tutaj mam do was pytanie małe wink.gif Jak oprogramować kroki w bok - klawisze a,d oraz patrzenie w górę i w dół klawisze - góra , dół bo niestety nie mam pojęcia jak to mogę rozwiązać.

 

Dziękuję za wszelką udzieloną pomoc wink.gif)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam wrażenie, że to działa tak, że jak wcisnę strzałkę w lewo to on się obróci i poruszy w tym kierunku. Tak ma być?

 

co do klawiszy:

poz.v to kąt. poz.v+90 w jedną stronę i poz.v-90 w kolejną (zależnie od tego jak masz to wszystko zrobione, może być czasem w radianach potrzebne)

 

góra dół

1. najpierw obracasz w płaszczyźnie XZ - to masz

potem w płaszczyźnie RY - r to nowy wektor o długości 5, który otrzymujesz w twoim przypadku. Tak naprawdę to promień okręgu.

 

Albo możesz też odpuścić trygonometrie i podawać kąty na glRotatef a pozycje na glTranslatef :) lub inne tego typu polecenia

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam panowie ;)

 

Hm nie miałem jak was wcześniej poinformowac ale udało się mi problem rozwiązac za pomoca biblioteki którą znalazłem. Pozwala ona na prostym poruszaniu kamera we wszystkich kierunkach oraz obracanie jej. Dziekuje za udizleone odpowiedzi.

 

Jednak mam teraz jeszcze maly problem zauwazylem ze jak naloze teksturke na blok z kanalem alfa (w tym wypadku plik .tga) to z 2 stron obiektu widac wszystko co jest za nim przez przezroczyste piksele a z drugiej strony obiektu w tym miejsciu widac jedynie czarne tlo chociaż elementy te są za nim. Wydaje się mi że tu chodzi cos o gl_cull_face jendak nie okminiam ;D proszę was o pomoc ;):) mogę też podesłac demo exe i czesc kodu jesli byscie chcieli ;)

 

Dziekuje za ewentualna pomoc ;)

 

 

UWAGA. Probelm rozwiazany , okazała się że wynikał on z mojego niedouczenia. Przedmioty z teksturą posiadającą kanał alfa renderuje jako ostatnie wtedy wszystkie strony działają poprawnie ;))

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

×