Seite 1 von 1
Camera Rotation?!
Verfasst: 09.09.2005 18:31
von Mr.Hahn
Hi,
Ich hab angefangen in PB zu programmieren, kann auch schon ganz gut damit umgehen. Jetzt habe ich aber das Prob, dass ich einen kleinen shooter basteln will (mit der OGRE Engine). Leider weiss ich nicht wie ich mir die Blickrichtung der Kamera ausgeben lassen kann, um einen schuss in dann ebendiese richtung fliegen lassen zu können
Kann mir jemand helfen?
PS.: An die Programmier-Cracks

: Hat schon jemand einen 3D shooter gebastelt in PB und Ogre? wenn ja, wär es cool wenn er mir den sourcecode zukommen lassen könnte!
Verfasst: 09.09.2005 23:28
von Zaphod
da gibt es keinen befehl für. am besten kümmerst du dich um die ausrichtung der camera selbst, mit lookat.
Verfasst: 10.09.2005 08:07
von Batze
Ich glaube er braucht ein par mehr Tips.
Ich wollte es auch mal wissen, aber mir wurde nur mitgeteilt was nicht geht.

Verfasst: 10.09.2005 13:02
von Zaphod
für die blickrichtung nimmst du einfach einen vektor, am besten einen einheitsvektor der länge 1 (muß aber nicht sein, ist nur für andere sachen nacher praktisch). den vektor rotierst du selbst um seinen ursprung in die richtung in die der blick gehen soll.
bei jedem frame holst du dir dann die camera position und addierst ihre x,y,z komponenten auf die komponenten deines blickrichtungsvektors (natürlich nicht so, dass der blickrichtungsvektor verändert wird, also evtl eine kopie verwenden). dann hast du den punkt auf den du mit lookat() die kamera richten kannst. wenn du einen schuß abschicken willst, dann schickst du den einfach in richtung blickrichtungsvektor, den du dann ja schon hast.
vieleicht gibt es eine bessere möglichkeit, aber ich bin noch nicht so fit mit 3d.
wenn dir dass alles nichts sagt, nimm dir ein gutes mathe buch und lerne erstmal den umgang mit vektoren.
Verfasst: 10.09.2005 13:17
von Green Snake
auf purearea(?) gibts in der showcase(?) so ein UFO ballerspiel.
das knanst du dir mal saugen, wenn du willst.
super beispiel, und zu dem noch opensource

Verfasst: 14.09.2005 12:53
von osta
Suchfunktion!!! Hab das irgendwann mal gepostet. Weiss die Formel nicht mehr ganz genau, aber ca so:
Code: Alles auswählen
xrot.f ; Ein Winkel für die X-Achsen Rotation
zrot.f ; " für die Z-Achse
; Dann mit der Mausabfrage die Winkel immer aktualisieren
zrot + mousedeltax()
xrot + mousedeltay()
; nicht vergessen, dass der Z-Winkel nicht größer 360° und nicht kleiner als 0° wird
;und der X-Winkel nicht größer als 180° und nicht kleiner als 0° wird.
;Dann die Kamera ausrichten:
CameraLookAt(0, CameraX(0)+10*GSin(........; <= Die Formel hab ich irgendwann gepostet und grad nicht da.
; Aber nicht vergessen: Die Sin und Cos is PB sind Bogenmaß,
; also die GSin und GCos besorgen.