Autorennen Kamera Prob

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

PhOENiX

Betreff: Autorennen Kamera Prob

BeitragMi, Sep 22, 2004 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab ein simples Auto speil geschriebn aber hab ein problem mit der Kamera wen das auto nach links fährt soll die kamera kurz an der seite und dann langsam wieder hinter das auto gehen so ähnlich wie bei NfS:U

Hier mein Code:
Code: [AUSKLAPPEN]
cam = CreateCamera(player)
PositionEntity cam, 0, 5, -15

EntityRadius cam,4

PointEntity player,cam


Code: [AUSKLAPPEN]
While Not KeyHit(1)

If KeyDown(200) Then MoveEntity player, 0, 0, 8

If KeyDown(208) Then MoveEntity player, 0, 0, -8

;If KeyDown(205) Then MoveEntity player, .8, 0, 0

;If KeyDown(203) Then MoveEntity player, -.8, 0, 0

;RotateEntity player,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0

If KeyDown(203) Then yaw#=yaw#+4:TurnEntity cam, 0, -1, 0
If KeyDown(205) Then yaw#=yaw#-4:TurnEntity cam, 0, 1, 0

RotateEntity player,pitch#,yaw#,roll#
UpdateWorld
RenderWorld


wie soll ich das umsetzen ??

MFG PhOENiX
MFG PhOENiX

Merced

BeitragMi, Sep 22, 2004 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn Du die Kamera um einige Frames verzögert erst drehst bekommst Du einen ähnlichen Effekt. Meinst Du das?
http://www.starship-battles.de.vu
http://www.venture-interactive.de.vu

PhOENiX

BeitragMi, Sep 22, 2004 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das mein ich

wie geht das (das verzögern)??

MFG PhONEiX
MFG PhOENiX

Merced

BeitragMi, Sep 22, 2004 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Dim moved(10)

While Not KeyHit(1)

If KeyDown(200) Then MoveEntity player, 0, 0, 8

If KeyDown(208) Then MoveEntity player, 0, 0, -8

For z = 1 to 9
 moved(z) = moved(z+1)
 Next

moved(10) = 0
If KeyDown(203)
 yaw#=yaw#+4
 moved(10) = -1
 EndIf
If KeyDown(205)
 yaw#=yaw#-4
 moved(10) = 1
 EndIf

TurnEntity cam, 0, moved(1), 0

RotateEntity player,pitch#,yaw#,roll#
UpdateWorld
RenderWorld


Hab es nicht getestet aber so müsste es gehen.
Die Schleife schiebt den Array Inhalt von hinten nach vorne (der erste Eintrag fällt dabei raus). Danach wird der letzte genullt.
Er merkt sich dann auf der letzten Stelle wohin Du steuerst (wenn Du steuerst!).

Anschließend bewegt er die Kamera entsprechend dem ältesten gemerkten.
http://www.starship-battles.de.vu
http://www.venture-interactive.de.vu

PhOENiX

BeitragMi, Sep 22, 2004 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
JO danke dafür abe rnoch eine frage wie kann ich es machen das das auto nicht aus der kamera sicht raus geht ??(sichtfeld)

MFG PhOENIX
MFG PhOENiX

BladeRunner

Moderator

BeitragMi, Sep 22, 2004 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Phoenix, ich werd dir jetzt was sagen was du wahrscheinlich nicht hören willst: Die Lösung deines Problemes liegt im Nachdenken (und ausprobieren/herumspielen mit dem Code) verborgen. Überleg dir einen Ansatz wie du denkst dass es gehen könnte und versuch ihn umzusetzen. Wenn das nicht klappt, poste deinen Code und deinen Ansatz und wir werden sehen was man daran verbessern kann. Aber ich werde dir keinen Fertigen Code liefern.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Merced

BeitragMi, Sep 22, 2004 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Blade Runner hat gesprochen. Ist ein guter Hinweis. Wink

Tipp von mir: Nimm Dir ein Papier und fang an zu kritzeln. Deine Szenerie, wie die Kamera sich verhält, was sie zeigt - der Winkel ist etwa 45° in der Breite und 35° in der Höhe (wenn ich mich recht entsinne) von der Kamerasichtlinie, was Du siehst. So kannst Du verschiedene Kamerapositionen von oben mal skizieren um zu sehen was geht und was nicht und entsprechende Sperren einfügen, Du kannst auch mit Winkel und solchen Sachen rechnen und sehr viel erreichen. So sind fast alle Funktionen von Starship Battles entstanden.
http://www.starship-battles.de.vu
http://www.venture-interactive.de.vu

PhOENiX

BeitragDo, Sep 23, 2004 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei dieser Frage stellung frage ich nicht nach einer lösung sondern einer hilfestellung wie man es umsetzen könnte mehr wollt nicht wissen.

Wenn dann einer eine lösung postet ist das au gut

Aber mir reicht einen ansatz wie ich es umsetzen kann. Smile


Danke für die hilfe an alle Very Happy

MFG PhOENiX
MFG PhOENiX

Merced

BeitragDo, Sep 23, 2004 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hängt von Deinen Kameraeinstellungen ab.

Prinzipiel könntest Du bei obiger Methode die Anzahl der Schritte etwas reduzieren, so dass die Kamera nicht zu weit hinterherhängt. Ansonsten wirst Du Deine ganze Kamerakontrolle umbauen müssen.

Aber dann könntest Du beispielsweise die Winkel kontrollieren in denen das Auto und die Kamera zueinander stehen. Wie gesagt 45° nach rechts oder links von der Kamerasichtlinie hört das Bild auf.
http://www.starship-battles.de.vu
http://www.venture-interactive.de.vu
 

INpac

BeitragDo, Sep 23, 2004 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du einfach ein geschmeidiges Ausrichten eines Objekts auf ein anderes haben willst, drehe das Quellobjekt ( = camera ) immer um DeltaYaw( camera, car ) / steps ... ebenso evtl. mit DeltaPitch

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group