Kamerahandling mit Funktion ?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Bura.Tino

Betreff: Kamerahandling mit Funktion ?

BeitragDo, Aug 25, 2005 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich steh grad vor einem Problem, das sicherlich ganz einfach zu lösen ist. Aber da ich nur noch Codezeilen vor mir sehe, muss ich hier mal fragen, ob jemand da eine Ahnung hat.

Problem ist folgendes:
Ich habe eine Hauptschleife. Vor dieser Hauptschleife wird mit Hilfe einer Funktion eine Kamera erstellt.

Die Funktion:
BlitzBasic: [AUSKLAPPEN]

;----------------------------------------------------------------------------------------------------
;Kamera erstellen
;----------------------------------------------------------------------------------------------------
Function CreateCam(NameDerKamera, XPositionDerKamera, YPositionDerKamera, ZPositionDerKamera)

NameDerKamera=CreateCamera()
PositionEntity NameDerKamera, XPositionDerKamera, YPositionDerKamera, ZPositionDerKamera

End Function


Und der Aufruf dazu:
BlitzBasic: [AUSKLAPPEN]

CreateCam(Hauptkamera,0,0,0)


Habe auch schon
BlitzBasic: [AUSKLAPPEN]

CreateCam(\"Hauptkamera\",0,0,0)

ausprobiert

Soweit, so gut. Die Kamera wird erstellt. Aber wie kann ich sie handlen ?

Habe mir dafür eine zweite Funktion geschrieben:
BlitzBasic: [AUSKLAPPEN]

;----------------------------------------------------------------------------------------------------
;Kamera handlen
;----------------------------------------------------------------------------------------------------
Function HandleCamera(NameDerKamera,MoveWorth)

TurnEntity NameDerCamera,MouseYSpeed()/2,-MouseXSpeed()/2,-EntityRoll(MainCam)
MoveMouse Width/2,Height/2

If KeyDown(17) Then MoveEntity NameDerCamera, 0, 0, MoveWorth
If KeyDown(31) Then MoveEntity NameDerCamera, 0, 0,-MoveWorth
If KeyDown(30) Then MoveEntity NameDerCamera,-MoveWorth, 0, 0
If KeyDown(32) Then MoveEntity NameDerCamera, MoveWorth, 0, 0

Return NameDerKamera
End Function


Aber es kommt immer daß das Entity nicht vorhanden ist. Sad
Hat jemand eine Idee, wie ich das machen muss ? Rolling Eyes

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Aug 25, 2005 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Du must das handle aus der function auch zurückgeben!

BlitzBasic: [AUSKLAPPEN]
Function CreateCam(NameDerKamera, XPositionDerKamera, YPositionDerKamera, ZPositionDerKamera) 

NameDerKamera=CreateCamera()
PositionEntity NameDerKamera, XPositionDerKamera, YPositionDerKamera, ZPositionDerKamera
Return NameDerKamera
End Function


Und so aufrufen
BlitzBasic: [AUSKLAPPEN]
NameDerCamera= CreateCam(Hauptkamera,0,0,0) 

Oder BlitzBasic: [AUSKLAPPEN]
Global NameDerCamera
[BB2D | BB3D | BB+]

Bura.Tino

BeitragDo, Aug 25, 2005 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe ich beides schon ausprobiert und beides funktioniert nicht. Da kommt der gleiche Fehler.

Ist das nicht auch irgendwie ein Fehler, wenn ich schreibe
BlitzBasic: [AUSKLAPPEN]
NameDerKamera=CreateCamera()

das dann die Kamera nicht den durch die Funktion übergebenen Namen "Hauptkamera" erhält, sondern "NameDerKamera" ?

skey-z

BeitragDo, Aug 25, 2005 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
"NameDerCamera musst du ja nicht mit übergeben, in der function reicht es wenn dieses handle local ist, durch die Rückgabe, wird dieses Handle auch an die variable übergeben:

BlitzBasic: [AUSKLAPPEN]


Hauptcamera=CreateCam(0,0,0)

....

Function CreateCam(x,y,z)

camera=CreateCamera()
PositionEntity camera, x, y, z

Return camera
End Function


hoffe es functioniert, sollte es aber[/code]
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Bura.Tino

BeitragDo, Aug 25, 2005 23:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt funktioniert es !
Vielen Dank ! Smile

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group