"Saubere" Kamerasteuerung
Übersicht

![]() |
Terror-StateBetreff: "Saubere" Kamerasteuerung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi na Leute! Ich dachte mir ich belästige euch mal wieder ein wenig ^^
Folgendes: Ich habe eigentlich die standard kameraführung(pivot und camera als child dazu z.B GTA VC) nur ist ja hier das bekannte problem, des "Terrainsabtauchen" was ich persönlich ziiiieeeeemlich unschön finde! also wenn die Kamera unter der Terrainhöhe liegt. In modernen Spielen (z.B GTA VC ^^) is es so gelöst, dass die kamera ihre position verändert sobald ein eintauchen droht. sie wandert über die spielfigur und dreht dabei runter. wen die gefahr eines eintauchens gebannt ist, nimmt die kamera wieder ihr standardposition ein. Cam(1) = EntityX(Cam(0),1) Cam(2) = EntityY(Cam(0),1) Cam(3) = EntityZ(Cam(0),1) Cam(4) = TerrainY(terrain,Cam(1),0,Cam(3)) das liefert aber leider nur die relative position... naja viele worte wenig sinn: wie krieg ich das ansehnlich gelöst? codebeispiele wären echt hilfreich. danke für die komplizieren in eure kopf gehirnprozesse! ![]() |
||
Ob friedlich oder militant, wichtig ist der Widerstand |
![]() |
Vincent |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo !
Es kommt immer darauf an, für welches Spiel du eine Kamera haben willst (z.B. Flugsimulation oder Dungeon-Fantasy ). Dein Code ist für mich zusammenhangslos. Für sinnvoll halte ich das System, welches z.B. bei World of Warcraft verwendet wird: Die Kamera ist immer in einem festen Winkel und fester Entfernung hinter der Spielfigur. Wenn ein Hinderniss, wie Terrain oder Wand die Sicht versperrt, dann wird die Kamera automatisch so nahe heranbewegt, dass sie sich geradeso hinter dem Hinderniss befindet und der Blick frei ist. Realisieren könntest du das so: mit "Entityinview" testest du, ob man die Spielfigur sehen kann. http://www.blitzbase.de/befehle3d/entityinview.htm Wenn das Ergebiss 0 ist, dann versetze einen Pivot auf die Position des Spielers und lass ihn in Richtung Kamera fliegen ( Pivot und Hindernisse können kolidieren ... mit stoppen). Dort wo der Pivot hängen geblieben ist, positionierst du die Kamera nun. |
||
Gott ist nicht mit uns ... weil er mit Idioten keine Gnade kennt ! |
Davok`xarden |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich nehm an du hast die Camera als Parent von nem Pivot gesetzt. Also kriegst du nur daten die relativ zum Pivot sind machs doch so:
cam(0) = EntityX(cam) + EntityX(pivot) cam(1) = EntityY(cam) + EntityY(pivot) cam(2) = EntityZ(cam) + EntityZ(pivot) Denke es geht so bin mir abber nit sicher |
||
Gott hat euch alle liebt, aber der Rest denk ihr seid [ZENSIERT |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
EntityY(,True) gibt die Globale Pos. zurück | ||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am einfachsten geht es mit einfachen BB Collisionen.
Code: [AUSKLAPPEN] [...] entitytype terrain,1 entitytype camera,2 collisions 1,2,2,2 [...] Beschreibung von Kollisionen siehe hier: http://blitzbase.de/befehle3d/collisions.htm MfG Blitzcoder |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group