![]() |
Directx und die perfekte Steuerung! ;)
Hallo,
ich bastel gerade ein bisschen mit Directx herum und wollte mal wissen, ob es irgendwo einen guten Algorithmus für die perfekte Steuerung der "Kamera" mit der Maus gibt!? Ich habe diesen Code:
Delphi-Quellcode:
Ich möchte wenn ich die Maus nach links bewege dass sich meine Kamera nach links bewegt, wenn ich die Maus nach rechts....
D3DXMatrixLookAtLH (ViewMatrix,D3DXVECTOR3(ViewDist,
ViewHeight, ViewDist), D3DXVECTOR3(0.0,2.0,0.0), D3DXVECTOR3(0.0,1.0,0.0)); Wenn ich mein Mausrad nach vorne bewege möchte ich in die Welt reinzoomen und wenn ich das Mausrad zurückdrehe, möchte ich rauszoomen! Danke für Antworten. Max |
Re: Directx und die perfekte Steuerung! ;)
In der DirectX-SDK steht drin, wie man die Funktion benutzt:
Code:
Um die Ausrichtung der Kamera anzugeben, brauchst du also nur einen Augenpunkt (wo sich die Kamera befindet), einen Zielpunkt (dort, wo die Kamera hinschaut) und einen Hoch-Vektor, der angibt, wo für die Kamera "oben" ist.
D3DXMATRIX *WINAPI D3DXMatrixLookAtLH(
D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt, CONST D3DXVECTOR3 *pUp ); Jetzt liegt es an dir, wie du diese Punkte berechnest (Vektorrechnung). Um einen Zoom-Effekt zu simulieren, musst du die Parameter der Perspektivenmatrix verändern.
Code:
Wobei pOut die Ausgabematrix ist, fovy das Sichtfeld im Bogenmaß, Aspect das Seitenverhältnis (Breite/Höhe), zn die nahe Clippingebene und zf die ferne Clippingebene.
D3DXMATRIX *WINAPI D3DXMatrixPerspectiveFovLH(
D3DXMATRIX *pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf ); |
Re: Directx und die perfekte Steuerung! ;)
Den timekey (Zeitunterschied zum letzten Frame) nicht vergessen!
sonst können sich user mit mehr FPS schneller umschauen... Fragen bezgl. Delphi und DirectX können dir die User bei ![]() sicher auch ganz genau beantworten. Mauseigabe mit DirectInput abfangen. kommt immer auch daraf an welche Header du verwendest. mfg Ruppi |
Re: Directx und die perfekte Steuerung! ;)
Zitat:
|
Re: Directx und die perfekte Steuerung! ;)
Zitat:
|
Re: Directx und die perfekte Steuerung! ;)
wenn man den durchschnittstimekey für 100FPS verwendet, dann läuft das
wie geschmiert ;) jedenfalls bei mir. Ansonsten hätten ja schnellere PCs spielvorteile... mit durchschnitt zwar immernoch aber der fehler anteil ist nicht mehr so hoch... mfg Ruppi |
Re: Directx und die perfekte Steuerung! ;)
Zitat:
|
Re: Directx und die perfekte Steuerung! ;)
Einfach einstellbare Maussensitivität einbauen und die Sache ist gegessen :wink: .
|
Re: Directx und die perfekte Steuerung! ;)
Zitat:
|
Re: Directx und die perfekte Steuerung! ;)
zum timekey:
in solospielen kann das ruhig genutzt werden. wenn man ein multiplayer-spiel programmiert, dnan sollte man es so machen, dass der server steuert, ob der timekey genutzt wird bei den spielern. wär mein vorschlag ;) aenogym |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz