Beruflich Dokumente
Kultur Dokumente
3D-Spieleprogrammierung mit
DirectX 9 und C++
von David Scherfgen
Stand: 05.07.2011 / Version 2
Inhalt
Wozu, warum, was ist das? ................................................................................................................. 1
Welche Software brauche ich? .......................................................................................................... 2
Wie kompiliere ich die Programme? .................................................................................................. 2
Ausfhren der kompilierten Programme ........................................................................................... 4
Starten aus Visual Studio heraus ................................................................................................... 4
Starten aus dem Windows Explorer heraus ....................................................................................5
Wie lege ich ein eigenes Projekt an? ...................................................................................................5
Schritt 1: Erzeugen des Projekts .....................................................................................................5
Schritt 2: Konfigurieren des Projekts .............................................................................................. 7
Schritt 3: Projektabhngigkeit definieren ..................................................................................... 10
Schritt 4: Schreiben Sie Ihr Programm! ......................................................................................... 11
Wo sind die TriBase-Tools? .............................................................................................................. 11
Bekannte Probleme .......................................................................................................................... 12
Wo bekomme ich weitere Hilfe? ....................................................................................................... 12
Aus diesem Grund habe ich die Programme von der Buch-CD nun auf den aktuellsten Stand
gebracht, so dass sie sich mit dem aktuellen DirectX-SDK (von Juni 2010) und Visual C++ 2010
kompilieren lassen, und fr alle Leser zum Download bereitgestellt.
Die Projektmappe wird mit Visual C++ 2010 geffnet. Das Programmfenster sollte dann nach einiger
Ladezeit so oder so hnlich aussehen (mit der Express Edition sieht es etwas anders aus):
Links ist eine Auflistung aller Projekte zu sehen. Die Projekte knnen in der Debug- oder
Release-Konfiguration kompiliert werden, dies kann oben im Men ausgewhlt werden. Debug
ist langsamer, erlaubt aber eine bessere Fehlersuche. Um alle Projekte zu kompilieren, klicken Sie
im Men auf Build und dann Build Solution (ich beziehe mich hier auf die englische Version von
Visual Studio, in der deutschen Version sind diese Meneintrge entsprechend bersetzt), oder
drcken Sie F7. Der Kompiliervorgang wird einige Zeit in Anspruch nehmen. Am Ende sollten dann
42 Projekte hoffentlich fehlerfrei kompiliert worden sein (42 succeeded im Ausgabefenster).
Beim Kompilieren werden .EXE-Dateien fr die Beispielprogramme und Spiele direkt im jeweiligen
Ordner erzeugt, auerdem werden die TriBase-DLLs auch automatisch dorthin kopiert (wenn
mglich, werden dabei feste Verknpfungen (Hard links) erzeugt, so dass die DLL-Kopien keinen
zustzlichen Speicherplatz belegen und sich auch automatisch aktualisieren, wenn die TriBase3
Engine neu kompiliert wurde). So knnen Sie die Programme starten, ohne selbst dafr sorgen zu
mssen, dass Windows die TriBase-DLL findet.
Whlen Sie im erscheinenden Dialog links als Template Visual C++ und Win32 aus. Unten geben
Sie den Projektnamen ein. Unter Location whlen Sie durch Klicken auf den Browse...-Button
das Verzeichnis Eigene Projekte aus, das im selben Verzeichnis liegt wie Beispielprogramme,
Spiele und TriBase. Klicken Sie auf OK.
Es erscheint wieder ein Fenster. Klicken Sie hier links auf Application Settings. Whlen Sie dann
rechts Windows application und Empty project aus.
Klicken Sie auf Finish. Ihr Projekt wurde nun erzeugt, muss aber noch konfiguriert werden.
Nun knnen die Einstellungen bearbeitet werden. Machen Sie dazu wieder einen Rechtsklick auf Ihr
Projekt, und whlen Sie Properties. Wir werden nun zunchst einige Einstellungen vornehmen,
die fr die Debug- und die Release-Konfiguration identisch sind. Whlen Sie dazu links oben in
der Liste All Configurations aus. Die erste nderung betrifft den verwendeten Zeichensatz. Die
Einstellung dazu befindet sich unter Configuration Properties und General. Whlen Sie bei
7
Character Set die Einstellung Use Multi-Byte Character Set. Wenn Sie mchten, dass die
kompilierten .EXE-Dateien fr Ihr Projekt direkt im Projektverzeichnis erzeugt werden, dann tragen
Sie oben bei Output Directory den String $(ProjectDir) ein (ohne Anfhrungszeichen).
Wenn Sie mchten, dass die .EXE-Datei der Debug-Konfiguration einen anderen Namen als die
der Release-Konfiguration erhlt, dann wechseln Sie links oben zu Debug (Sie werden zunchst
gefragt, ob Sie die nderungen bernehmen mchten, was Sie mit Ja beantworten). ndern Sie
dann den Wert von Target Name in $(ProjectName) (Debug). Wechseln Sie anschlieend
wieder zu All Configurations.
Als Nchstes klicken Sie links auf C/C++. Tragen Sie dann bei Additional Include Directories
folgendes ein:
$(SolutionDir)TriBase\Include;$(SolutionDir)TriBase\Dependencies\Include
Dann wechseln Sie links zu Linker, und tragen Sie unter Additional Library Directories
folgenden String ein:
$(SolutionDir)TriBase\Lib;$(SolutionDir)TriBase\Dependencies\Lib
Klappen Sie nun den Linker-Eintrag links auf, und whlen Sie Input. Ersetzen Sie den Wert von
Additional Dependencies durch:
TriBase.lib;%(AdditionalDependencies)
Wechseln Sie dann oben links zur Debug-Konfiguration, und ersetzen Sie dort das TriBase.lib
durch TriBaseD.lib, damit die Debug-Version der Bibliothek gelinkt wird. Schalten Sie dann
wieder zurck auf All Configurations.
Die nun folgende letzte Einstellung bewirkt, dass beim Kompilieren Ihres Projekts automatisch die
TriBase-DLL-Datei in das Projektverzeichnis kopiert wird. Klicken Sie dazu links in der Liste auf
Build Events und dann auf Pre-Link Event (es sollte eigentlich auch mit den beiden anderen
Mglichkeiten funktionieren). Bei Command Line geben Sie ein:
"$(SolutionDir)CopyDLL.bat" "$(SolutionDir)TriBase\Bin\TriBase.dll" "$(ProjectDir)TriBase.dll"
Tragen Sie, wenn Sie mchten, unter Description ein: Kopiere TriBase-DLL in das
Programmverzeichnis .... Wechseln Sie nun wieder zur Debug-Konfiguration, und ersetzen Sie
dort im Command Line-String zweimal TriBase.dll durch TriBaseD.dll.
Einstellung
Wert fr Debug
Wert fr Release
General
Character Set
Output Directory
$(ProjectDir)
Target Name
$(ProjectName) (Debug)
C/C++
Additional Include
Directories
$(SolutionDir)TriBase\Include;
$(SolutionDir)TriBase\Dependencies\Include
Linker /
General
Additional Library
Directories
$(SolutionDir)TriBase\Lib;
$(SolutionDir)TriBase\Dependencies\Lib
Linker / Input
Additional
Dependencies
TriBaseD.lib;
%(AdditionalDependencies)
TriBase.lib;
%(AdditionalDependencies)
Build Events /
Pre-Link Event
Command Line
"$(SolutionDir)CopyDLL.bat"
"$(SolutionDir)TriBase\Bin\TriBaseD.dll"
"$(ProjectDir)TriBaseD.dll"
"$(SolutionDir)CopyDLL.bat"
"$(SolutionDir)TriBase\Bin\TriBase.dll"
"$(ProjectDir)TriBase.dll"
Description
$(ProjectName)
10
Whlen Sie dann Ihr Projekt als StartUp Project, und kompilieren Sie es mit F7. Mit Strg+F5 oder
F5 starten Sie das Programm. Es sollte der TriBase-Konfigurationsdialog erscheinen (aber nichts
weiter passieren).
11
Bekannte Probleme
Hier werden Probleme gesammelt, die bereits bekannt sind. Sie mssen diese Probleme also nicht
im Forum melden. Wenn Sie jedoch eine Idee haben, wie sie gelst werden knnen, dann freuen wir
uns natrlich darber, wenn Sie uns diese mitteilen.
Bekannte Probleme:
Die Klasse tbVideo zum Abspielen von Videos funktioniert nicht richtig, wenn V-Sync
eingeschaltet ist. Die Videos ruckeln dann sehr stark. Das Problem muss noch genauer
untersucht werden. Beim Abschalten von V-Sync werden die Videos jedoch flssig
abgespielt.
12