Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

11

13.08.2004, 18:37

Zitat von »"adapto"«

Zitat


dann verstehe ich nicht wo das problem ist.

Quellcode

1
2
(Kamera Position)= ((Position Spieler)*(Richtung Spieler)) - (Distanz)
(Kamera Richtung)= (Richtung Spieler)


Also ich hoffe ich steh nur auf der Leitung, aber ich schaffe es einfach nicht!

C-/C++-Quelltext

1
2
3
 mCamera = tbMatrixCamera((SpielerPosition*vSpielerDirection) + tbVector3(0.0f,2.0f,-2.0f), 
                           vSpielerDirection, 
                            tbVector3(0.0f, 1.0f, 0.0f)); 

Glaub Du meinstest es sollte so aussehen? Dabei kommt eine sehr eingartige Bewegung der Kamera heraus, was leider überhaupt nicht stimmt!

Also hab ich follgendes auch noch probiert, keines davon funktioniert...:

C-/C++-Quelltext

1
2
3
 mCamera = tbMatrixCamera((SpielerPosition*vSpielerDirection) + tbVector3(0.0f,2.0f,-2.0f), 
                                SpielerPosition*vSpielerDirection, 
                            tbVector3(0.0f, 1.0f, 0.0f)); 



C-/C++-Quelltext

1
2
3
mCamera = tbMatrixCamera((SpielerPosition-(tbVector3(0.0f,2.0f,-2.0f)))*vSpielerDirection, 
                                SpielerPosition+tbVector3(0.0f,2.0f,0.0f), 
                            tbVector3Cross(SpielerPosition-(tbVector3(0.0f,2.0f,-2.0f)*vSpielerDirection), SpielerPosition+tbVector3(0.0f, 2.0f, 0.0f))); 


.........
...


Also mein Problem liegt darin, dass ich nicht so eine Kameraansicht hinbekomme, die ich wie auf der Zeichnung oben haben möchte....
Sondern meine Kamera, schaut zwar schon auf das Objekt und geht bei manchen Versuchen auch mit, aber sie dreht sich einfach nicht mit dem Objekt genau mit! Wäre ja auch unlogisch, wenn ich den Code wie er oben ist aufzeichne, sieht man gut, dass es so nicht funktionieren kann, wenn man zum Beispiel als Blickpunkt die Richtung des Spielers angibt, da dreht sich der Körper, die Kamera bleibt natürlich stehen und neigt sich nach unten!

Also ich hoffe wir schaffen das noch mal... :)

adapto

Treue Seele

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

12

13.08.2004, 20:51

müsste eigentlich stimmen

spielfigur: position= richtung+ faktor(geschwindigkeit)
kamera: kposition= position+ (richtung- distanz)

Quellcode

1
2
Kamera Position)= ((Position Spieler)+(Richtung Spieler)) - (Distanz) 
(Kamera Richtung)= (Richtung Spieler)


sorry, kann es gerade nicht bei mir testen, aber auf dem papier gehts.

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

13

13.08.2004, 21:49

Also wenn ich es jetzt so mache:

C-/C++-Quelltext

1
2
3
mCamera = tbMatrixCamera((SpielerPosition*vSpielerDirection) + tbVector3(0.0f,2.0f,-2.0f), 
                           vSpielerDirection, 
                            tbVector3(0.0f, 1.0f, 0.0f)); 


Also man kann es relativ schwer beschreiben, aber die Kamera macht ganz eigene Bewegungen, zum Beispiel, wenn man die Pfeiltaste nach oben drückt, dreht sich die Kamera nach unten!
Oder der Würfel dreht sich im Kreis, die Kamera bleibt am gleichen Platz stehen und maht so eine Art Keisbewegung von oben nach rechts, dann weiter nach unten, nach links wieder hinauf, aber bleibt immer am gleichen Platz! Also irgendwas muss noch falsch sein! Ich bräuchte ja so eine Bewegung, wie wenn man den Würfel zwei Einheiten nach hinten versetzt und rotieren lässt und dabei aber bei der WeltMatrix Multiplikation Rotation * Translation macht! Wie ja im Buch auf Seite 67 gut dargestellt wird! Nur bräuchte ich das eben mit der Kamera und nicht mit dem Würfel!

So noch hab ich Hoffung es zu schaffen! :)


cya,
Stefan

adapto

Treue Seele

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

14

13.08.2004, 22:25

was passiert den hierbei?

Quellcode

1
2
3
mCamera = tbMatrixCamera((SpielerPosition+vSpielerDirection) + tbVector3(0.0f,2.0f,-2.0f), 
                           vSpielerDirection, 
                            tbVector3(0.0f, 1.0f, 0.0f));

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

15

13.08.2004, 22:49

hm, wieder was ganz eigenartiges, also wenn man wieder die Hochpfeiltaste drückt, dreht sie sich langsam nach unten und beschleunigt dann sehr schnell nach unten mit der Blickrichtung! Ansonsten bleibt sie wieder am gleichen Platz und der Würfel dreht sich!


SpielerRichtung ahbe ich so:

C-/C++-Quelltext

1
2
3
tbVector3 vSpielerDirection = tbVector3(sinf(Richtung),
                                            0.0f,
                                            cosf(Richtung));

Aber das glaube ich stimmt ziemlich sicher!

adapto

Treue Seele

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

16

13.08.2004, 22:57

ja das stimmt

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

17

13.08.2004, 23:05

Haltet mich für blöd aber ich würde die position so ausrechnen:
Spielerpos-( kamera-/spieler-ausrichtung * distanz) +(0.0f,2.0f,0.0f)

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

18

13.08.2004, 23:21

ja, danke, das hab ich mir auch gerade gedacht nur eben ohne die +(0.0f,2.0f,0.0f), aber leider geht beides nicht!
Naja, ich bin froh für jede Möglichkeit die ihr mir schreibt, irgendwann wird schon eine funktionieren...also bitte weiter so fleißig posten ;) thx


cya,
Stefan

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

19

14.08.2004, 00:00

JoA, habs geschafft!!!!!!!


So muss es aussehen!

C-/C++-Quelltext

1
2
3
mCamera = tbMatrixCamera(SpielerPosition +tbVector3(0.0f,2.0f,0.0f) - (tbVector3(2.0f, 2.0f,2.0f)*vSpielerDirection), 
                           SpielerPosition, 
                            tbVector3(0.0f, 1.0f, 0.0f)); 


Danke, Ihr habt mich auf den richtigen Weg gebracht!

Bis Bald...zum nächsten Problem... :-D

cya,
Stefan

adapto

Treue Seele

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

20

14.08.2004, 00:07

wenn das funktioniert dann haben wir hier ein mathematisches wunder... :)

gruss adapto

Werbeanzeige