AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Directx und die perfekte Steuerung! ;)
Thema durchsuchen
Ansicht
Themen-Optionen

Directx und die perfekte Steuerung! ;)

Ein Thema von maximi · begonnen am 26. Mär 2005 · letzter Beitrag vom 14. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
maximi

Registriert seit: 9. Jun 2003
217 Beiträge
 
Delphi 7 Personal
 
#1

Directx und die perfekte Steuerung! ;)

  Alt 26. Mär 2005, 17:54
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:
      D3DXMatrixLookAtLH (ViewMatrix,D3DXVECTOR3(ViewDist,
                                                 ViewHeight,
                                                 ViewDist),
                                     D3DXVECTOR3(0.0,2.0,0.0),
                                     D3DXVECTOR3(0.0,1.0,0.0));
Ich möchte wenn ich die Maus nach links bewege dass sich meine Kamera nach links bewegt, wenn ich die Maus nach rechts....
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
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#2

Re: Directx und die perfekte Steuerung! ;)

  Alt 26. Mär 2005, 18:57
In der DirectX-SDK steht drin, wie man die Funktion benutzt:
Code:
D3DXMATRIX *WINAPI D3DXMatrixLookAtLH(
  D3DXMATRIX *pOut,
  CONST D3DXVECTOR3 *pEye,
  CONST D3DXVECTOR3 *pAt,
  CONST D3DXVECTOR3 *pUp
);
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.
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:
D3DXMATRIX *WINAPI D3DXMatrixPerspectiveFovLH(
  D3DXMATRIX *pOut,
  FLOAT fovy,
  FLOAT Aspect,
  FLOAT zn,
  FLOAT zf
);
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.
  Mit Zitat antworten Zitat
Ruppi

Registriert seit: 12. Apr 2005
7 Beiträge
 
#3

Re: Directx und die perfekte Steuerung! ;)

  Alt 12. Apr 2005, 21:05
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
http://www.delphidev.de/
sicher auch ganz genau beantworten.

Mauseigabe mit DirectInput abfangen.

kommt immer auch daraf an welche Header du verwendest.

mfg
Ruppi
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Directx und die perfekte Steuerung! ;)

  Alt 12. Apr 2005, 21:16
Zitat von Ruppi:
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
http://www.delphidev.de/
sicher auch ganz genau beantworten.

Mauseigabe mit DirectInput abfangen.

kommt immer auch daraf an welche Header du verwendest.

mfg
Ruppi
Timekey würde ich weglassen, den das sorgt für ein extrem schwammiges Spielgefühl( Siehe CS:S )!
Felix K.
  Mit Zitat antworten Zitat
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#5

Re: Directx und die perfekte Steuerung! ;)

  Alt 12. Apr 2005, 21:53
Zitat von Speedmaster:
Zitat von Ruppi:
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
http://www.delphidev.de/
sicher auch ganz genau beantworten.

Mauseigabe mit DirectInput abfangen.

kommt immer auch daraf an welche Header du verwendest.

mfg
Ruppi
Timekey würde ich weglassen, den das sorgt für ein extrem schwammiges Spielgefühl( Siehe CS:S )!
oder deus ex 2 ^^
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
Ruppi

Registriert seit: 12. Apr 2005
7 Beiträge
 
#6

Re: Directx und die perfekte Steuerung! ;)

  Alt 12. Apr 2005, 22:51
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
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Directx und die perfekte Steuerung! ;)

  Alt 13. Apr 2005, 17:50
Zitat von Ruppi:
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
Es kann meiner Meinung nach egal sein ob Leute mit einem besserem PC Vorteile haben, wenn dafür nicht das Gameplay flöten geht ist das ein durchaus gutes Opfer!
Felix K.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: Directx und die perfekte Steuerung! ;)

  Alt 13. Apr 2005, 18:27
Einfach einstellbare Maussensitivität einbauen und die Sache ist gegessen .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Directx und die perfekte Steuerung! ;)

  Alt 13. Apr 2005, 19:29
Zitat von Khabarakh:
Einfach einstellbare Maussensitivität einbauen und die Sache ist gegessen .
Maussensitivität hat nur bedingt mit dem Schwammigen Spielgefühl etwas zu tun, falls du CS:S und CS 1.6 hast kannst du gerne mal damit versuche anstellen!
Felix K.
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Directx und die perfekte Steuerung! ;)

  Alt 13. Apr 2005, 19:36
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
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz