Mausbewgungen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

azureuz

Betreff: Mausbewgungen

BeitragSo, Nov 28, 2004 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich bin gerade dabei nen kleinen egoshooter zu basteln. nun hab ich aber das problem das ich echt keine ahnung habe wie ich mich mit der maus umgucken soll. also wie der code sein soll? hab schon in der onlinehilfe geguckt(wo alle befehle sind etc.), aber da kann cih auch nichts finden. kann mir jemand sagen wie ich das lösen kann?

schonmla danke!

robotx

BeitragSo, Nov 28, 2004 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
naja wie wärs wenn du erst mal suchen würdest!!
denn diese frage wurde schon hundertmal beantwortet.

robotx
 

azureuz

BeitragSo, Nov 28, 2004 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
hm. hab eben gerade was gefunden -.-
aber das ist nicht das was ich suche.

sami

BeitragSo, Nov 28, 2004 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Befehle MouseXSpeed(), MouseYSpeed() anschauen....[/code]
 

azureuz

BeitragSo, Nov 28, 2004 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, soweit bin ich jetzt. aber nun ist das problem, dass das nicht gerade bleibt. wie soll ich das beschreiben...

so sieht mein 'maus' code jetzt aus:


Code: [AUSKLAPPEN]
x=MouseXSpeed()
y=MouseYSpeed()

If x<0 Then TurnEntity camera,0,1,0
If x>0 Then TurnEntity camera,0,-1,0

If y>0 Then TurnEntity camera,1,0,0
If y<0 Then TurnEntity camera,-1,0,0

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSo, Nov 28, 2004 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutze RotateEntity.

Code: [AUSKLAPPEN]

;Initalisieren
Graphics3D 640,480
cam=CreateCamera()
SeedRnd(MilliSecs())

;Farbige Cubes erstellen
For i=0 To 50
   c=CreateCube()
   PositionEntity c, Rand(-50,50),Rand(-50,50),Rand(-50,50)
   EntityColor c, Rand(0,255),Rand(0,255),Rand(0,255)
Next

;Mainloop
While Not KeyDown(1)

   Cls
   
   ;Cachen
   mxs#=-MouseXSpeed()
   mys#=MouseYSpeed()
      
   ;Drehen
   If mxs#<>0 Then RotateEntity cam,EntityPitch(cam),EntityYaw(cam)+mxs#,EntityRoll(cam)
   If mys#<>0 Then
      If mys#>0 Then
         If EntityPitch(cam)+mys#>70
            mys#=70-EntityPitch(cam)
         EndIf
         RotateEntity cam,EntityPitch(cam)+mys#,EntityYaw(cam),EntityRoll(cam)
      ElseIf mys#<0 Then
         If EntityPitch(cam)+mys#<-70
            mys#=-70-EntityPitch(cam)
         EndIf
         RotateEntity cam,EntityPitch(cam)+mys#,EntityYaw(cam),EntityRoll(cam)
      EndIf
   EndIf
   
   ;Maus zurücksetzen
   MoveMouse 320,240
   
   
   ;Rendern
   RenderWorld()
   Flip
Wend


In dem Code ist gleichzeitig auch eine Speere drin damit man sich nicht beim Pitch komplett um 360° um die eigene Achse drehen kann (wäre etwas merkwürdig in einem FPS.. Wink )
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com
 

Darren

BeitragSo, Nov 28, 2004 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich habe das gaaanz anders gelöst baue mal in deinen shooter eine zoomfunction ein und versuche mal nur mit drehung etwas zu treffen.... etwas was kleiner ist du siehst dass sich die maus ruckartig bewegt mit sowas kann man keinen shooter machen.... versuche es anders zu lösen....
also ohne rotateentity und mousex/yspeed 8) 8) 8)

MFG Darren
 

Usel-Wusel

BeitragSo, Nov 28, 2004 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Darren, könntest du mir mal bidde nen Tip geben, wie du das gemacht hast, ich stehe nämlich gerade vor genau dem Problem vondem du gerade oben erzählst hast.
Ich habe es schon mit "mousex" und "mousey" versucht, aber dann brauchte ich immer noch den "rotateentity" Befehl.
Bitte helf mir !



Usel-Wusel

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSo, Nov 28, 2004 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hä? Wieso kein Rotateentity? Wie denn sonst? Hallo o_O

Wenn die Bewegung zu Ruckelig ist, muss man bei meinm Code einfach
mxs# und mys# durch einen beliebigen Wert Teilen um sie genauer zu machen bzw. mulitplizieren um sie schneller zu machen. Alles ganz einfach.
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com
 

Darren

BeitragSo, Nov 28, 2004 22:15
Antworten mit Zitat
Benutzer-Profile anzeigen
aja denkst du darauf bin ich net gekomm he?? ne es geht sehr wohl anders:

du erstellst einen pivot - soweit klar

du verwendest camerapick(camera,mousex(),mousey())

du setzt den pivot an die gepickte stelle

du pointest mit der cam auf den pivot

versuch es mal - siehe und staune


für diese methode brauchst du aber eine skysphere oder cube

MGF Darren
 

Usel-Wusel

BeitragSo, Nov 28, 2004 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahh, thx,
Ich hatte auch mal so einen Ansazt gemacht , habe es aber wieder verworfen, weil es bei mir nie geklappt hat.
Weiß jetzt auch, was bei mir falsch war, hatte vergessen ne skybox einzubauen. Aber wie heißt es so schön "Nobody is perfect "



mfg Usel-Wusel
 

Kifferopa

Gast

BeitragSa, Mai 28, 2005 18:29
Antworten mit Zitat
Gleich noch ´ne Frage, ich bin auch dabei einen Ego-Shooter zu programmieren...
Wenn die Gegner auf mich schießen, kann ich ja nichtBlitzBasic: [AUSKLAPPEN]
If EntityCollided(GegnerSchuss\Mesh,1) ;1 ist Typ von Kamera
anwenden, weil die Kamera ja kein Mesh ist oder so.
Darum muss ich noch einen SpielerMesh laden und ihn an die Position der Kamera setzen.
Was muss dann in der Maussteuerung stehen?

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group