Hi, hab mir neulich Blitz3D zugelegt und bin jetzt fleißig am Lernen. Wollte nen kleinen egoshooter baun. Ich einfach mal eine Kugel zur Raumorientierung reingesetzt. Bewegen soll man sich wie in nem Ego-Shooter. Das Laufen und Strafen hab ich noch hingekriegt aber ich möchte mit der Maus die Richtung ändern können und halt die Kamera um die eigene Achse drehn lassen um sich umzusehn. Bis jetzt schaut das ganze so aus:
Graphics3D 1024,768,16,2
SetBuffer BackBuffer()
camera=CreateCamera()
light=CreateLight()
kugel=CreateSphere()
mx=x+MouseX()
my=y+MouseY()
MoveEntity kugel,0,0,5
While Not KeyHit(1)
If KeyDown(17) Then TranslateEntity camera,0,0,0.2
If KeyDown(31) Then TranslateEntity camera,0,0,-0.2
If KeyDown(30) Then TranslateEntity camera,-0.2,0,0
If KeyDown(32) Then TranslateEntity camera,0.2,0,0
TurnEntity camera,mx,my,0 in der Zeile stimmt was nicht
WireFrame(1)
UpdateWorld
RenderWorld
Flip
Wend
End
Graphics3D 1024,768,16,2
SetBuffer BackBuffer()
camera=CreateCamera()
light=CreateLight()
kugel=CreateSphere()
mx=x+MouseX()
my=y+MouseY()
MoveEntity kugel,0,0,5
While Not KeyHit(1)
If KeyDown(17) Then TranslateEntity camera,0,0,0.2
If KeyDown(31) Then TranslateEntity camera,0,0,-0.2
If KeyDown(30) Then TranslateEntity camera,-0.2,0,0
If KeyDown(32) Then TranslateEntity camera,0.2,0,0
TurnEntity camera,mx,my,0 in der Zeile stimmt was nicht
WireFrame(1)
UpdateWorld
RenderWorld
Flip
Wend
End
Ich kenne mich mit Blitz3D nicht gut aus, aber ich denke dass eine erstellte Kamera nicht als Objekt(Entity) zählt.
Ausserdem schreibst du oben, dass du mit der Maus Steuern willst, benutzt dann aber keyDown ?
Ausserdem schreibst du oben, dass du mit der Maus Steuern willst, benutzt dann aber keyDown ?
ich kann dir net genau sagen was falsch ist.
Aber das:
mx=x+MouseX()
my=y+MouseY()
kommt in die Schleife mit rein.
Aber das:
mx=x+MouseX()
my=y+MouseY()
kommt in die Schleife mit rein.
jo, ich will mit maus und tastatur steuern. ich glaub da muss noch irgendwas mit maus winkel rein oder so, rené kennt sich doch damit aus dachte ich?
Noch ein kleiner tipp;
nimm mal keinen Kreis - an dem lässt´s sich so schwer sagen, ob du deine Kamera drehst ;).
Nimm am besten 3 Objekte, die Eckpunkte sollten ein Dreieck geben. Dann siehst du besser ob das mit der Kamera geht.
nimm mal keinen Kreis - an dem lässt´s sich so schwer sagen, ob du deine Kamera drehst ;).
Nimm am besten 3 Objekte, die Eckpunkte sollten ein Dreieck geben. Dann siehst du besser ob das mit der Kamera geht.
die kugel is ja nicht als "held" da sondern nur zur orientierung im leeren raum, da ich sonst überhaupt nicht wüsste wo ich hinlaufe
nur wirds schwer sein, denn eine Kugel sieht von oben genau so aus wie von der Seite :) vorallem im leeren Raum!
Zu deiner frage: ich habs auch mal versucht mit Maus...
ich = CreateCamera() <<
v_mouseX# = MouseXSpeed()
v_mouseY# = MouseYSpeed()
If KeyDown(200) Then MoveEntity ich,0.0,0,+0.2
If KeyDown(208) Then MoveEntity ich,0.0,0,-0.2
If KeyDown(205) Then MoveEntity ich,0.+0.2,0,0
If KeyDown(203) Then MoveEntity ich,0.-0.2,0,0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Kamerabewegung links/rechts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If v_mouseX# < 0 Then
v_kameraY# = 2
TurnEntity ich,0,v_kameraY#,0
End If
If v_mouseX# > 0 Then
v_kameraY# = -2
TurnEntity ich,0,v_kameraY#,0
End If
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Kamerabewegung oben/unten
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If v_mouseY# > 0 Then
v_kameraX# = 0.5
TurnEntity ich,v_kameraX#,0,0
End If
If v_mouseY# < 0 Then
v_kameraX# = -0.5
TurnEntity ich,v_kameraX#,0,0
End If
Kann dir ja das Programm mal schicken.
ich = CreateCamera() <<
v_mouseX# = MouseXSpeed()
v_mouseY# = MouseYSpeed()
If KeyDown(200) Then MoveEntity ich,0.0,0,+0.2
If KeyDown(208) Then MoveEntity ich,0.0,0,-0.2
If KeyDown(205) Then MoveEntity ich,0.+0.2,0,0
If KeyDown(203) Then MoveEntity ich,0.-0.2,0,0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Kamerabewegung links/rechts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If v_mouseX# < 0 Then
v_kameraY# = 2
TurnEntity ich,0,v_kameraY#,0
End If
If v_mouseX# > 0 Then
v_kameraY# = -2
TurnEntity ich,0,v_kameraY#,0
End If
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Kamerabewegung oben/unten
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If v_mouseY# > 0 Then
v_kameraX# = 0.5
TurnEntity ich,v_kameraX#,0,0
End If
If v_mouseY# < 0 Then
v_kameraX# = -0.5
TurnEntity ich,v_kameraX#,0,0
End If
Kann dir ja das Programm mal schicken.
Logge dich ein um einen Beitrag zu schreiben.