3D - Bild schwenken - Koordinaten anpassen
Übersicht

![]() |
SereyanneBetreff: 3D - Bild schwenken - Koordinaten anpassen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Leute,
ich weiß nich so recht, wie ich mein Problem erklären soll. Vielleicht verstehts ja trotzdem jemand... ![]() Code: [AUSKLAPPEN] Graphics3D 1024,768,32,1 ;Kameraposition: cx#=64 cy#=20 cz#=64 Const vor=200, zurueck=208, links=203, rechts=205, menu=1, abbruch=14, OK=28 ;Esc für menü, backspace für abbruch, enter für OK Const schwenklinks=82, schwenkrechts=156 ;Numpad 0, Numpad Enter maus=LoadImage("maus.bmp") SetBuffer BackBuffer() cam=CreateCamera() terrain=CreateTerrain(128) TerrainDetail terrain, 2000,1 TerrainShading terrain, 1 ;shading einschalten wuerfel=LoadMesh ("wuerfel.x") PositionEntity wuerfel, 20,0,10 blender=LoadMesh("blender kugel.x") PositionEntity blender, 50,10,10 texFloor=LoadTexture("floor.bmp") EntityTexture terrain, texFloor textur=LoadTexture("textur.bmp") EntityTexture blender, textur light=CreateLight(1) PositionEntity cam, cx#, cy#, cz# PositionEntity light,10,10,0 RotateEntity cam,50,0,0 While Not KeyHit (1) If KeyDown(vor) Then cz#=cz#+1 If cz#>120 Then cz#=120 PositionEntity cam, cx#, cy#, cz# EndIf If KeyDown(zurueck) Then cz#=cz#-1 If cz#<-10 Then cz#=-10 PositionEntity cam, cx#, cy#, cz# EndIf If KeyDown(links) Then cx#=cx#-1 If cx#<-10 Then cx#=-10 PositionEntity cam, cx#, cy#, cz# EndIf If KeyDown(rechts) Then cx#=cx#+1 If cx#>128 Then cx#=128 PositionEntity cam, cx#, cy#, cz# EndIf If KeyDown(schwenklinks) Then sl#=sl#-1 RotateEntity cam,50,sl#,0 EndIf If KeyDown(schwenkrechts) Then sl#=sl#+1 RotateEntity cam,50,sl#,0 EndIf UpdateWorld RenderWorld X=MouseX() Y=MouseY() DrawImage maus,x,y Flip Wend End Also ich versuchs mal: Meine erste Map mit zwei langweiligen Objekten steht. Ich kann mit der Kamera übers Gelände fahren, toll. Jetzt hab ich mich daran gemacht, die Kamera zu schwenken, damit man die Objekte von allen Seiten betrachten kann. Wenn ich die Kamera schwenke, ist es natürlich so, dass die Richtungstasten nur die allgemeinen Koordinaten abfahren, also nicht aus Sicht der Kamera. Ist ziemlich doof, so umdenken zu müssen... Auf einmal ist rechts unten, oben ist links usw. Wie kann ich denn "den Nullpunkt so setzen", dass die Richtungstasten immer aus Sicht der Kamera funktionieren? |
||
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
MoveEntity![]() Zitat: Eine Kamera kann somit immer nach vorne verschoben werden - egal ob man zur Seite guckt oder nach unten oder oben... Auch die Abstände werden relativ zur letzten Position betrachtet.
mfG, Thorsten |
||
![]() |
Sereyanne |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey cool... das hab ich glatt übergangen. Danke!
Nur irgendwie... springt jetzt alles. Ich hab einfach die Befehle positionentity cam mit moveentity cam ausgetauscht, und wenn ich jetzt in eine richtung drücke, ist alles weg (schwarz) und zurück komm ich nicht mehr... |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist doch auch logishc. Bitte etwas mehr die Hilfe benutzen. Mit MoveEntity![]() ![]() Das heißt, wenn du ein Objekt bewegen willst, darfst du natürlich nicht den selben wert wie bei der Positionierung nehmen. Sagen wir, du positionierst das Objekt auf 300,0,0. Wenn du jetzt MoveEntity 300,0,0 schreibst, bewegt sich das Objekt jede schleife 300 Einheiten auf der X Achse. Da ist es klar, dass du im Nirgendwo landest. |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
*hust* Deswegen hob ich das auch in meinem Zitat hervor.. | ||
![]() |
Sereyanne |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso... entschuldigung. ![]() Aber ich zähle doch schon nur um eins hoch: cz#=cz#+1 Wie soll ich denn anders zählen? +0,01? Hab ich wohl schon probiert! Danke schonmal. |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du brauchst doch nicht wie bei 2D Die Position immer in einer Variable speichern. Schreib einfach
Zitat: MoveEntity Entity,0,0,1
Falls du die Position dann dochmal brauchst, helfen dir EntityX ![]() ![]() ![]() ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Sereyanne |
![]() Antworten mit Zitat ![]() |
---|---|---|
He-ey...
Das sieht gut aus auf den ersten Blick! Jetzt darf ich nur noch ein klein wenig basteln. Vielen Dank! (Ich liebe dieses Forum... ![]() |
||
SiSoFlo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tankbuster hat Folgendes geschrieben: Du brauchst doch nicht wie bei 2D Die Position immer in einer Variable speichern.
Richtig! Wenn du es trotzdem machst musst du die Variable in jedem Schleifendurchlauf auch wieder verringern. Also z.B. z = z / 1.5 oder so. Das hat den Effekt, dass wenn du die Vorwärts-Taste nicht mehr drückst, dass die Kamera nicht apprupt stehen bleibt sondern erst langsamer wird. (Bremsweg) mfG Flori |
||
So wie ihr von anderen Menschen behandelt werden wollt so behandelt sie auch! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group