Möglich, dass die Maus im Fenster bleibt?
Übersicht

DJ_MicBetreff: Möglich, dass die Maus im Fenster bleibt? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich möchte, dass meine Maus im Fenster bleibt, damit ich eine Third person Camera machen kann. Denn momentan sobald ich mit der Maus aus dem Fenster gehe, dann dreht die Kamera ja nicht mehr. Und wenn ich die Maus in der Mitte des Bildes positioniere, dann bewegt sich die Kamera leider nicht... Kann mir jemand helfen? ![]() Für alle die wissen wollen, wie meine Kamera Funktion aussieht. Pivtos deklarieren: BlitzBasic: [AUSKLAPPEN]
Aufrufen: BlitzBasic: [AUSKLAPPEN] UpdateCam( world.camera, piv2, piv ) Funktion: BlitzBasic: [AUSKLAPPEN] Function UpdateCam( cam:TCamera, piv:TPivot, piv2:TPivot, d:Float=0.3 ) |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Speichere die Mauskoordinaten.
Im nächsten Frame bilde die Differenz der alten und der neuen Mauskoordinaten. Nun prüfe ob die Maus das Fenster verlassen hat, wenn ja, setze die Mauskoordinaten auf den Fensterrand zurück. Die nun ermittelten Koordinaten werden die ausgangskoordinaten für die nächste Prüfung. Mit der ermittelten Differenz von oben kannst Du deine Kamerabewegung füttern. Edit: alternativ kannst du auch Blind in jedem Frame die Maus auf die Fenstermitte resetten, entscheiden ist nur dass du eben die errechnete Differenz für die Bewegung der Kamera nimmst. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mal anders gefragt:
Wieso funktioniert die Camdrehung nichtmehr, wenn du die Maus mittig zentrierst? Als kleinen hinweis: Hole dir zuerst MouseXSpeed() und MouseYSpeed(), positioniere die Maus mit MoveMouse(GraphicsWidth()/2, GraphicsHeight()/2) und nutze erneut MouseXSpeed() und MouseYSpeed() OHNE diese einer variable zuzuweisen. Hintergrund: XSpeed und YSpeed hält den bewegungsvektor der maus, seit dem letzten aufruf von MouseXSpeed() und MouseYSpeed(). Positionierst du nun die Maus neu, ist der wert verfälscht. Darum solltest du XSpeed und YSpeed erneut aufrufen, um bis zum nächsten Update nur die reinen usereingaben darin zu haben. Mit den werten hast du dann einen Wunderbaren Speedvektor den du quasie ganz einfach in rotation übertragen kannst ![]() (kleiner Tipp: Du solltest einen Point-To-Pivot anlegen, und diesen um das Zentrum drehen. Und dazu eine Lineare interpolation zwischen der PointEntity(pivot) rotation und der Aktuellen Camrotation durchführen und so die neue CamRotation setzen. Als interpolationsfaktor nimmst du zb 0.9, so hast du immer eine schöne sanfte bewegung ![]() |
||
DJ_Mic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, ich kanns mir momentan schwer vorstellen was ihr meint. ich werde es mal versuchen.
Danke ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group