Flotte Spiele - Seite 2

DirectX 7.0

Die ganze Welt von DirectX 7.0
Danach liegt dem Visual-Basic-Programm die ganze Welt von DirectX 7.0 zu Füßen, die sich in Form sogenannter COM-Schnittstellen bzw. COM-Objekte offenbart. DirectX stellt dazu eine komplette Hierarchie voneinander abhängiger Objekte bereit, an dessen Spitze das DirectX7-Objekt steht. Dieses muss von jedem Visual-Basic-Programm erzeugt (instanziert) werden, denn nur über dieses Objekt ist der Zugriff auf die Subkomponenten von DirectX möglich. Denn das "X" in DirectX ist ein Platzhalter, der für Draw, Sound, 3D, Input bzw. Play steht. DirectX ist also der Verbund der Programmierschnittstellen DirectDraw, DirectSound, Direct3D, DirectInput und DirectPlay. Und hinter jedem dieser Begriffe verbirgt sich eine Programmierschnittstelle, die den hardwarenahen Zugriff auf den Bildschirm (DirectDraw), die Soundkarte (DirectSound), den 3D-Beschleuniger (Direct3D), die Eingabegeräte wie Joystick, Maus und Tastatur (DirectInput) und die Rechnerkopplung für Netzwerkspiele (DirectPlay) gestattet. Aufgrund der Fülle dieser Schnittstellen können wir uns hier allerdings nur der DirectDraw- und der DirectSound-Schnittstelle widmen.

Die Mutter aller Objekte Die "Mutter aller Objekte" innerhalb einer DirectX-Anwendung ist das DirextX7-Objekt. An ihm führt kein Weg vorbei, und daher ist es das erste, das von einer Anwendung erzeugt wird:

  Dim dx As New DirectX7
 
Durch Dimensionierung dieses Objektes über das New-Schlüsselwort steht es ohne weitere Vorkehrungen unmittelbar nach Programmstart zur Verfügung. Ausgehend von ihm müssen weitere Objekte erzeugt werden - beispielsweise das DirectDraw7-Object, das den Zugriff auf die DirectDraw-Schnittstelle erlaubt. Um es zu erstellen, muss die Methode CreateDirectDraw7 des DirectX7-Objekts aufgerufen werden. Der Parameter, den diese Methode erwartet, ist von eher "esoterischem" Wert und in herkömmlichen VB-Anwendungen nur sehr, sehr selten von Belang. Deshalb kann hier der Leere-String übergeben werden:

  Dim dd As DirectDraw7
  Set dd = dx. _
    DirectDrawCreate("")
 
Wurde das DirectDraw-Objekt erstellt, geht es an die Programmierung der Grafikanwendung. Zunächst muss angegeben werden, ob die Anwendung in einem Fenster, also kooperativ mit anderen Windows-Anwendungen, oder exklusiv als Vollbildanwendung ablaufen soll. Vollbildanwendungen sind zwar deutlich schneller als DirectDraw-Anwendungen, die innerhalb eines Fensters ablaufen. Allerdings sind Fensteranwendungen leichter zu debuggen, weil im Falle eines Fehlers eine MessageBox auf dem Desktop zu sehen ist, was bei Vollbildanwendungen nicht der Fall ist. Eine fehlerhafte Vollbildanwendung lässt sich leider oft nur durch den Neustart des Rechners beenden. Daher erläutern wir zunächst die Programmierung der etwas komplizierteren, für den Anfänger aber deutlich vorteilhafteren Fensteranwendungen.

Artikel kommentieren