Kamerasteuerung mit der Maus

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

aave13

Betreff: Kamerasteuerung mit der Maus

BeitragFr, Aug 25, 2006 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
moin,
hatte diese Frage schonmal früher gestellt, hab sie aber leider nicht mehr gefunden. also meine frage ist, wie ich die kamera mit der maus steuern kann, so wie in allen egoshootern á la counterstrike etc. .

hoffe ihr könnt mir helfen
mfg aave

Christoph

BeitragFr, Aug 25, 2006 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ql:mousexspeed
ql:mouseyspeed
ql:movemouse

Diese Befehle helfen...
Drehe die Camera mit ql:turnentity einfach um ql:mousexspeed und ql:mouseyspeed und setzte die Maus wieder mit ql:movemouse in die Mitte des Bildschrimes.
 

antome

!!! gesperrt !!!

BeitragFr, Aug 25, 2006 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Zufällig gerade im verhergehenden Thread sind 2 Beispiele drin welche dies auch demonstrieren
im Beispiel von Chi musst du nur den zu ladenden Terrainmesh gegen z.B. ein eigenes Mesh oder Heightmap Terrain tauschen, oder auch ne Plane und du hast sogar den wackeleffekt beim gehen mit drin.
https://www.blitzforum.de/foru...hp?t=19493
antome
 

aave13

BeitragFr, Aug 25, 2006 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
stimmt, ist n gutes programm, aber ich suche leider was einfacheres, wie der vorposter schon sagte: nur mit mouseX und turn und so sachen, nichts aufwendiges...

mfg aave

shure_kyu

Newsposter

BeitragSa, Aug 26, 2006 5:34
Antworten mit Zitat
Benutzer-Profile anzeigen
ich frage mich manchmal echt ob auch einer von den leuten hier die samples aus dem blitzbasic3d ordner kennt...


Creating a scene part 4.bb hat Folgendes geschrieben:



; Get the mouse speeds, no smoothing here to keep this simple.
mXs# = MouseXSpeed()
mYs# = MouseYSpeed()

; Note the global turning here to keep the camera straight, try switching true to false
; and see what happens...
TurnEntity Camera,0,-(mXs#/3),0,True
TurnEntity Camera,(mYs#/3),0,0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2



Rolling Eyes

_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________
◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de
¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯
BBP-RSS FEED Halt dich auf dem laufenden!
(C)Shure_kyu
  • Zuletzt bearbeitet von shure_kyu am Mi, Sep 13, 2006 0:13, insgesamt 2-mal bearbeitet
 

aave13

BeitragSa, Aug 26, 2006 13:07
Antworten mit Zitat
Benutzer-Profile anzeigen
cool das geht, danke! aber hat noch einer was auf lager, dass man nur bis 90° nach unten und oben drehen kann?

StepTiger

BeitragSa, Aug 26, 2006 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
90 ist unpraktisch, da sich die kamera oft dreht

Code: [AUSKLAPPEN]
If entitypitch(objekt)>89 then rotateentity objekt,89,EntityYaw(objekt),0
If entitypitch(objekt)<-89 then rotateentity objekt,-89,EntityYaw(objekt),0
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Willi die Rübe

BeitragSa, Aug 26, 2006 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Und ohne MouseXSpeed():

Code: [AUSKLAPPEN]
   RotateEntity cam,(400+MouseY())*.5, -(MouseX()-400)*.5,0 ;Irgendwo aus dem englischen Codearchiv


Zuzüglich die 2 Zeilen von StepTiger mit der Maximalbegrenzung und schon ist die Routine nur 3 Zeilen lang.

Greets
Willi
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage
 

aave13

BeitragMo, Aug 28, 2006 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
das mit der maximalbegrenzung geht irgendwie nicht... wenn ich nach unten schaue, fluppt die kamera irgendwo anders hin oder auf den kopf, kann man nich genau erkennen...

mfg aave

mas93

BeitragDo, Okt 19, 2006 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

; Get the mouse speeds, no smoothing here to keep this simple.
mXs# = MouseXSpeed()
mYs# = MouseYSpeed()

; Note the global turning here to keep the camera straight, try switching true to false
; and see what happens...
TurnEntity Camera,0,-(mXs#/3),0,True
TurnEntity Camera,(mYs#/3),0,0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2


hi,hab das gerade gelesen.Ich fände es total cool wenn ihr noch nbeispiel machen könntet wie man dann die camera in dies richtung bewegt.

mfg mas93[/quote]
 

Krümel

BeitragDo, Okt 19, 2006 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Für cs-artige kameras solltest du evtl. mit kamera-pivot verbindung arbeiten..
so kannst nach oben oder unten schauen ohne automatisch in blickrichtung der kamera zu "fliegen".

Code: [AUSKLAPPEN]

Graphics3D 640,480,16,2
SetBuffer BackBuffer()

Light=CreateLight()

CameraPivot=CreatePivot()
Camera=CreateCamera(CameraPivot)

For t=1 To 100
   c=CreateCube()
   PositionEntity c,Rnd(-50,50),0,Rnd(-50,50)
Next

MoveMouse 320,240

While Not KeyHit(1)

   CameraMove# = 0
   ;Pfeil hoch:   vorwärts
   If KeyDown(208) CameraMove#=-0.5
   ;Pfeil runter: rückwärts
   If KeyDown(200) CameraMove#= 0.5
   
   ;maussteuerung   
   TurnEntity Camera , MouseYSpeed()*0.1 ,0 , 0
   TurnEntity CameraPivot , 0 , -MouseXSpeed()*0.1 , 0
   MoveEntity   CameraPivot,0,0,CameraMove#
   
   MoveMouse 320,240
   
   RenderWorld
   Flip

Wend

jj2

BeitragFr, Okt 20, 2006 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ähm coole steuerrung^^

Ich bin gerade auch dabei nen kleinen shooter zu machen.
Hier ist mein code:

Code: [AUSKLAPPEN]


Graphics3D 640,480,16,2
SetBuffer BackBuffer()
HidePointer

Type Schuss
Field x#,y#,z#
End Type

;--------------------------------LADEN-----------------------------------------------------
schuss=LoadMesh("meshs/shot.3ds")
;möbel positionen

Global fadenkreuz=LoadImage("texturen/fadenkreuz.png")
MaskImage fadenkreuz,0,0,255


Light=CreateLight()
LightColor light,255,0,0
CameraPivot=CreatePivot()
Camera=CreateCamera(CameraPivot)
gun=LoadMesh("meshs/waffe.3ds",CameraPivot)

For t=1 To 100
c=CreateCube()
PositionEntity c,Rnd(-50,50),0,Rnd(-50,50)
Next

MoveMouse 320,240

PositionMesh gun,+10,-5,0

Repeat

If MouseHit(1) Then
s.schuss = New schuss
x# = x#
y# = y#
s\z# = z#+1:
EndIf


For s.schuss= Each schuss
PositionEntity schuss,s\x#,s\y#-10,s\z#
s\z#=s\z#+1


Next


CameraMove# = 0
;Pfeil hoch: vorwärts
If KeyDown(208) CameraMove#=-0.1
;Pfeil runter: rückwärts
If KeyDown(200) CameraMove#= 0.1

;maussteuerung
TurnEntity Camera , MouseYSpeed()*0.1 ,0 , 0
TurnEntity CameraPivot , 0 , -MouseXSpeed()*0.1 , 0
MoveEntity CameraPivot,0,0,CameraMove#

MoveMouse 320,240

RenderWorld

DrawImage fadenkreuz,MouseX(),MouseY()

Flip

Until KeyHit(1)
End


Wie lasse ich den schuss jetzt genau da hin schießen wie die camerarictung ist??

wäre nett wenn ihr mir da n bisschen helfen könntet

thx
...:::ICH WOHNE IN DER GESÜNDESTEN STADT DEUTSCHLANDS:::...
Meine Pages : www.lpbase.de
mein projekt :Authority von Impulse Soft
User posted image
 

Krümel

BeitragSa, Okt 21, 2006 0:40
Antworten mit Zitat
Benutzer-Profile anzeigen
so könnte es gehen...


Code: [AUSKLAPPEN]

Graphics3D 640,480,16,2
SetBuffer BackBuffer()
HidePointer

Type Schuss
Field SchussEntity
Field SchussZeit
End Type

;--------------------------------LADEN-----------------------------------------------------
Global schussEntity=LoadMesh("meshs/shot.3ds")
;möbel positionen

Global fadenkreuz=LoadImage("texturen/fadenkreuz.png")
MaskImage fadenkreuz,0,0,255


Light=CreateLight()
LightColor light,255,0,0
CameraPivot=CreatePivot()
Camera=CreateCamera(CameraPivot)
gun=LoadMesh("meshs/waffe.3ds",CameraPivot)

For t=1 To 100
c=CreateCube()
PositionEntity c,Rnd(-50,50),0,Rnd(-50,50)
Next

MoveMouse 320,240

PositionMesh gun,+10,-5,0

Repeat

If MouseHit(1) Then
   s.schuss = New schuss
   s\SchussEntity=CopyEntity(SchussEntity,Camera)
   EntityParent s\SchussEntity,0
EndIf


For s.schuss= Each schuss
   If s\schussZeit<100
      s\schussZeit=s\schussZeit+1
      MoveEntity s\SchussEntity,0,0,2
   Else
      FreeEntity s\SchussEntity
      Delete s
   EndIf
Next


CameraMove# = 0
;Pfeil hoch: vorwärts
If KeyDown(208) CameraMove#=-0.1
;Pfeil runter: rückwärts
If KeyDown(200) CameraMove#= 0.1

;maussteuerung
TurnEntity Camera , MouseYSpeed()*0.1 ,0 , 0
TurnEntity CameraPivot , 0 , -MouseXSpeed()*0.1 , 0
MoveEntity CameraPivot,0,0,CameraMove#

MoveMouse 320,240

RenderWorld

DrawImage fadenkreuz,MouseX(),MouseY()

Flip

Until KeyHit(1)
End

mas93

BeitragSa, Okt 21, 2006 9:53
Antworten mit Zitat
Benutzer-Profile anzeigen
danke,funktioniert sehrgut

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group