Mauswinkel? :(

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Darthshoot

Betreff: Mauswinkel? :(

BeitragSo, März 25, 2007 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Nach einer längeren Pause wollte ich mal fragen ob mir jemand erklären kann wie ich für meinen neusten Egoshooter den Blick der Kamera der Maus anpassen kann? Also z.B.:

Solange Maus nach oben -> turnentity nach oben etc.

Danke im Voraus.
MfG Darth

pixelshooter

BeitragSo, März 25, 2007 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
wie wärs mit
Code: [AUSKLAPPEN]
turnentity mouseYSpeed(),0,0
turnentity 0,mouseXSpeed(),0

danach die maus natürlich wieder in die fenstermitte setzen. ich weiß grad net ob die parameter an der richtigen stelle stehn...
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc
 

Darthshoot

BeitragSo, März 25, 2007 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm das klappt net so gut aber danke trotzdem.

Ich habs im Moment so:

Code: [AUSKLAPPEN]
mXs# = MouseXSpeed()
mYs# = MouseYSpeed()

TurnEntity Cam,0,-(mXs#/3),0,True
TurnEntity Cam,(mYs#/3),0,0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2


Aber wie kann ich es machen, dass er sich nicht überschlägt, wenn ich nach oben oder unten gucke? Ich hab gesucht aber irgendwie ging das nicht was angegeben war. Oder ich habs falsch gemacht.
 

Todeskop

BeitragSo, März 25, 2007 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
versuchs ma mit rotateentity
 

Darthshoot

BeitragSo, März 25, 2007 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt kann ich ihn so gut wie garnicht mehr bewegen und er geht sofort zur Mitte zurück.

Fuchsi

BeitragSo, März 25, 2007 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wärs mit:

Code: [AUSKLAPPEN]

 mxs#=MouseXSpeed()*0.2
 mys#=MouseYSpeed()*0.2
 RotateEntity cam,entitypitch(cam)+mys#,EntityYaw(cam)-mxs#,0
 MoveMouse      breite/2,hoehe/2



MfG
Füchse sind toll !
 

Darthshoot

BeitragSo, März 25, 2007 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo danke das kommt schon nah an das hin was ich will, aber im Moment "zuckt " die Kamera ab 90 Grad so komisch rum.. irgendwie spiegelt sich das Bild.

NightPhoenix

BeitragSo, März 25, 2007 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
mit der methode kannst du deine kamera nicht weiter drehen als bis +90° und -90° dann zuckt das bild --- also es schlägt um... dann ist deine figur auf einmal um 180° um die y-achse gedreht
geht bei mir auch so und nicht anders... gibt aber noch andere methoden, von denen ich aber bis jetzt noch nie gebrauch gemacht habe.

aMul

Sieger des Minimalist Compo 01/13

BeitragSo, März 25, 2007 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst verhindern, dass die Kamera sich so weit dreht. Dann kann auch nichts zucken Wink

Denkhilfe:
Code: [AUSKLAPPEN]
Drehung = Drehung + MouseYSpeed()
If Drehung > 89
    Drehung = 89
EndIf
EntityRotate Kamera, Drehung, 0, 0
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

NightPhoenix

BeitragSo, März 25, 2007 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
genau!
noch ein kleiner tipp.... setze den code von aMul nach der Abfrage der Maus und rotieren der Kamera, sonst zuckts immernoch falls du die maus so schnell bewegst dass du sie gleich um 2 einheiten rotierst
dann hätte der code nämlich garkeinen effekt, weil du ja wieder von 89 auf 91 springst und das solle ja nicht sein ^^
MfG.
 

Darthshoot

BeitragSo, März 25, 2007 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm jo danke erstmal aber im Moment bin ich total verwirrt. Also ich hab das jetzt so und jetz geht irgendwie garnichts mehr:

Code: [AUSKLAPPEN]
mxs# = MouseXSpeed() * 0.2
mys# = MouseYSpeed() * 0.2
RotateEntity Cam, EntityPitch(cam) + mys#, EntityYaw(cam) - mxs#, 0
MoveMouse GraphicsWidth() / 2, GraphicsHeight() / 2

Drehung = Drehung + MouseYSpeed()
If Drehung > 89
Drehung = 89
EndIf
If Drehung2 < -89
Drehung2 = -89
EndIf
RotateEntity Cam, Drehung2, 0, 0

Holzchopf

Meisterpacker

BeitragSo, März 25, 2007 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Variable Drehung2 sollte wohl auch einfach Drehung heissen, andererseits bewegt sich die Kamera ja gar nicht (weil du Drehung2 nie veränderst)
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

Todeskop

BeitragSo, März 25, 2007 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
machs einfach so:

Code: [AUSKLAPPEN]
iny#=EntityPitch#(camera)
ya#=EntityYaw#(camera)
;hauptschleife-----------------------
while not keyhit(1)
;maus---------------------------------
mx#=MouseXSpeed()
my#=MouseYSpeed()




If Not (iny#>70 Or iny#<-70)

   iny#=iny#+my#
Else
   minusbereich=iny#/Abs(iny#)
   iny#=89 *minusbereich
EndIf

If Not (ya#>89 Or ya#<-89 )
   ya#=ya#+mx#
Else
   minusbereich=ya#/Abs(ya#)
   ya#=89 *minusbereich
EndIf

RotateEntity camera,iny#,-ya#,0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2

Evolver01

BeitragSo, März 25, 2007 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
schau dir mal den thread an (ganz runterscrollen):

https://www.blitzforum.de/foru...hp?t=22732

vllt hilft dir das ja weiter?

MfG Evolver
Grafiker von Space Threat...
 

Darthshoot

BeitragSo, März 25, 2007 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne leider nicht Sad das obrige Beispiel ging garnicht und das untere ist vielleicht für Renngames gut aber doch nicht für einen Egoshooter Sad und außerdem gibts dort auch keine Grenze für 90 Grad nach oben... Ich hab mal was probiert aber das geht auch nicht:

Code: [AUSKLAPPEN]
mXs# = MouseXSpeed()
mYs# = MouseYSpeed()

TurnEntity Cam, 0, -(mXs# / 3), 0, True
TurnEntity Cam, (mYs# / 3), 0, 0
MoveMouse GraphicsWidth() / 2, GraphicsHeight() / 2

If MouseY() > 89 Then TurnEntity Cam, 89, 0, 0
If MouseY() > -89 Then TurnEntity Cam, -89, 0, 0


Woran liegts? Das müsste doch eigendlich gehn oder?

Silver_Knee

BeitragSo, März 25, 2007 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
ich mach das mit ego shootern immer so:
Code: [AUSKLAPPEN]
         TurnEntity cam ,MouseYSpeed()/4,0,0
         TurnEntity you,0,-MouseXSpeed()/4.0,0
         
         If EntityPitch(cam,True)>50.0 RotateEntity cam,50,0,0
         If EntityPitch(cam,True)<-50.0 RotateEntity cam,-50,0,0

wobei you der parent der kamera ist

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group