Mausbewgungen
Übersicht

azureuzBetreff: Mausbewgungen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
naja wie wärs wenn du erst mal suchen würdest!! denn diese frage wurde schon hundertmal beantwortet. robotx |
||
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hm. hab eben gerade was gefunden -.-
aber das ist nicht das was ich suche. |
||
![]() |
sami |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Befehle MouseXSpeed(), MouseYSpeed() anschauen....[/code] | ||
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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.. ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
KifferopaGast |
![]() 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 Kameraanwenden, 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? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group