
Spiele Effektiv Programmieren Mit Vb.net Und Directx
by Kettermann, Uwe; Rohde, Andreas-
This Item Qualifies for Free Shipping!*
*Excludes marketplace orders.
Rent Textbook
Rent Digital
New Textbook
We're Sorry
Sold Out
Used Textbook
We're Sorry
Sold Out
Summary
Table of Contents
Inhaltsverzeichnis | p. IX |
Die Buchstruktur | p. 1 |
Was ist VB.NET? | p. 3 |
Unterschiede zu Visual Basic 6 | p. 3 |
Rapid Application Development | p. 4 |
Vererbung | p. 4 |
Ausnahmebehandlung | p. 4 |
Überladung | p. 4 |
Overrides: Überschreiben von Methoden und Eigenschaften | p. 5 |
Konstruktoren und Destruktoren | p. 6 |
Datentypen | p. 6 |
Verweise | p. 7 |
Namespaces | p. 7 |
Assemblies | p. 7 |
Multithreading | p. 7 |
Common Language Runtime (CLR) | p. 7 |
Garbage Collection | p. 8 |
Die Entwicklungsumgebungen von VB.NET | p. 11 |
Das Visual Studio .NET | p. 13 |
Formdesigner | p. 15 |
Werkzeugfenster | p. 16 |
Eigenschaftenfenster | p. 16 |
Projektexplorer | p. 17 |
Pin-Nadel-Symbol | p. 17 |
SharpDevelop | p. 18 |
Code-Competion-Datenbank | p. 18 |
Der erste Start | p. 20 |
""""Hello World"""" das erste .NET-Programm | p. 23 |
Ein einfaches Programm mit einem einfachen Editor | p. 23 |
Der Sourcecode | p. 23 |
Der Compiler | p. 24 |
Ein Projekt im Visual Studio.NET | p. 25 |
Variablen | p. 29 |
Deklaration | p. 30 |
Datentypen und Konstanten | p. 30 |
Der richtige Datentyp | p. 32 |
Konstanten | p. 34 |
Strukturen | p. 37 |
Typensicherheit | p. 38 |
Ermitteln des Variablentyps | p. 41 |
Operatoren | p. 43 |
Arithmetische Operatoren | p. 43 |
Vergleichsoperatoren | p. 45 |
Mit dem Gleich-Operator Werte zuweisen! | p. 45 |
Verzweigungen | p. 47 |
Verzweigungen oder Entscheidungen? | p. 47 |
If-Then-Else-Anweisung | p. 47 |
Notationsunterschiede! | p. 50 |
Verschachtelungen oder ElseIf: ElseIf | p. 50 |
Select-Case-Anweisungen | p. 53 |
Schleifen | p. 57 |
For-Next-Schleife | p. 58 |
Do-Loop-Schleife | p. 59 |
Endlosschleifen | p. 62 |
While-End-While-Schleife | p. 62 |
For-Each-Schleife | p. 63 |
Arrays | p. 67 |
Statische Arrays | p. 67 |
Dynamische Arrays | p. 68 |
GetUpperBound | p. 69 |
Mehrdimensionale Arrays | p. 70 |
Funktionen und Subroutinen | p. 73 |
Subroutinen | p. 73 |
ByVal oder ByRef | p. 75 |
Funktionen | p. 75 |
Return | p. 76 |
Optionale Parameter | p. 77 |
Rekursives Programmieren | p. 78 |
Klassen | p. 81 |
Was ist eine Klasse? | p. 81 |
Nothing | p. 82 |
Felder | p. 83 |
Subroutinen und Funktionen | p. 84 |
Eigenschaften: Property | p. 86 |
Parameter in Properties | p. 87 |
Eingeschränkte Properties | p. 88 |
Enumerationen in Klassen | p. 89 |
Events | p. 90 |
Ein umfassendes Beispiel | p. 92 |
Erstellen der Klasse | p. 93 |
Klasse mit Daten füllen | p. 95 |
Daten aus der Klasse lesen | p. 95 |
Shared-Mitglieder | p. 96 |
Vererbung | p. 97 |
Overrides | p. 99 |
MyBase | p. 101 |
MustOverride und MustInherit | p. 102 |
Namespaces | p. 103 |
Namespaces ansprechen | p. 104 |
Imports | p. 104 |
Assemblies | p. 107 |
Arbeitsweise von Assemblies | p. 108 |
Shared Assembly | p. 108 |
Fehlerbehandlung | p. 109 |
Try-Catch-Finally-Anweisung | p. 109 |
Ausnahmebehandlung (Beispiel) | p. 110 |
OnError-GoTo-Befehl | p. 111 |
Was ist DirectX | p. 113 |
Die Säulen von DirectX | p. 113 |
Die Einsatzgebiete für DirectX | p. 115 |
DirectX-Grundlagen | p. 117 |
Das Koordinatensystem | p. 117 |
Primitives | p. 119 |
Primitives rendern | p. 121 |
Vorder- und Rückseite | p. 125 |
Mein erstes DirectX-Programm | p. 127 |
Ein Visual Studio .NET-Projekt erstellen | p. 127 |
Direct3D-Device erzeugen | p. 129 |
Rendern | p. 131 |
Mein erstes Objekt im 3D-Raum | p. 135 |
Vertexbuffer erstellen | p. 136 |
Vertexbuffer mit Objektdaten füllen | p. 137 |
Vertexbuffer rendern | p. 139 |
World-, View- und Projektionsmatrix | p. 141 |
Worldmatrix | p. 141 |
Viewmatrix | p. 142 |
Projektionsmatrix | p. 143 |
Device Enumeration | p. 145 |
DXSettings | p. 145 |
Display-Adapter | p. 148 |
Hardwarebeschleunigung (DeviceTyp) | p. 149 |
Videomodus | p. 150 |
Backbuffer-Format | p. 152 |
Z-Stencilbuffer-Format (Depth-Stencilbuffer-Format) | p. 154 |
Multisample-Typ | p. 155 |
Vertex-Processing | p. 157 |
DXSettings im praktischen Einsatz | p. 159 |
Preset-Struktur | p. 160 |
DXSettings initialisieren | p. 162 |
Matrizen | p. 165 |
Was ist eine Matrix | p. 165 |
Einheitsmatrix | p. 166 |
Addition | p. 166 |
Subtraktion | p. 166 |
Multiplikation | p. 167 |
Division -.1 | p. 167 |
Berechnen der invertierten Matrix M-1 | p. 168 |
Transformation | p. 169 |
Bewegt sich die Welt oder bewegt sich das Objekt? | p. 170 |
Translation (Bewegung, Positionsveränderung) | p. 170 |
Skalieren (Größenänderung) | p. 171 |
Rotation (Drehung) | p. 172 |
Grad vs Radiant | p. 174 |
Beispielprogramm für Matrizen | p. 175 |
Texturen | p. 181 |
Texturkoordinaten | p. 181 |
Kacheln einer Textur | p. 183 |
Das passende Vertexformat | p. 184 |
Größe einer Textur | p. 185 |
Auslesen der maximalen Texturbreite und Höhe | p. 186 |
Laden einer Textur | p. 186 |
Texturfilter | p. 188 |
MinFilter und MagFilter | p. 188 |
Nearest Point Sampling | p. 188 |
Linearer Texturfilter | p. 189 |
Anisotropic Filter (uneinheitlicher Filter) | p. 189 |
Bilineare und uneinheitliche Filterung | p. 190 |
Mipmaps | p. 190 |
Beispielprogramm für Texturen | p. 191 |
Ermitteln der maximalen Texturbreite und -höhe | p. 192 |
Erstellen des Vertexbuffers | p. 193 |
Erstellen und Laden einer Textur | p. 195 |
Rendern | p. 196 |
Multitexturing (Multi Texture Mapping) | p. 197 |
Mischparameter | p. 198 |
Multi-Pass-Technik vs. Single-Pass-Technik | p. 201 |
Texturkoordinaten, Vertexformat und Vertexbuffer | p. 202 |
Beispielprogramm für Multitexturing | p. 204 |
Alpha-Textur-Blending | p. 211 |
Texturfaktor | p. 211 |
Licht: Beleuchtung | p. 213 |
Licht und Material | p. 214 |
Direct3D.Lights | p. 214 |
Normalvektor | p. 215 |
Berechnung des Normalvektors | p. 217 |
Lichttypen | p. 218 |
Ambient-Light | p. 219 |
Point-Light | p. 220 |
Directional-Light | p. 221 |
Spot-Light | p. 222 |
Welcher Lichttyp ist der beste? | p. 224 |
Licht, Schatten und Polygone | p. 225 |
Flat-Shading | p. 225 |
Gouraud-Shading | p. 226 |
Phong-Shading | p. 227 |
Licht und Polygone | p. 227 |
Beispielprogramm für Licht und Polygone | p. 228 |
Erstellen der Flächen | p. 229 |
Erstellen der Lichter | p. 232 |
Beispielprogramm für Lichttypen | p. 234 |
Boden und Wände erstellen | p. 236 |
Lichtquellen initialisieren | p. 239 |
Licht und Mesh | p. 242 |
Beispielprogramm für Licht und Mesh | p. 243 |
Material | p. 245 |
Zusammenspiel zwischen Material und Licht | p. 245 |
Die Bestandteile des Materials | p. 246 |
Diffuse | p. 246 |
Ambient | p. 247 |
Specular | p. 247 |
Emissive | p. 247 |
Material initialisieren und aktivieren | p. 247 |
Beispielprogramm für Material | p. 248 |
Meshobjekte | p. 251 |
Erstellen eines Mesh-Objektes | p. 252 |
Laden eines Mesh-Objektes | p. 253 |
Darstellen eines Mesh-Objektes | p. 255 |
Animation des Mesh-Objektes Frame-Animation | p. 259 |
Prinzip der Frame-Animation | p. 260 |
Timing bei der Frame-Animation | p. 260 |
Mesh-Objekte: Tweening/Keyframe-Animation | p. 263 |
Keyframe-Bestimmung | p. 273 |
Keyframe-Interpolation | p. 274 |
Keyframe rendern | p. 278 |
Billboarding | p. 281 |
Was sind Billboards? | p. 281 |
Warum werden Billboards eingesetzt? | p. 282 |
Schlechtes Billboarding | p. 282 |
Gutes Billboarding | p. 282 |
Berechnungsmethoden | p. 283 |
Beispielprogramm für Billboarding | p. 284 |
Textureoberfläche erstellen | p. 285 |
Hauptspieleschleife erzeugen | p. 286 |
Rendern | p. 287 |
Wasser | p. 291 |
Technik zum Erstellen der Wasseroberfläche | p. 292 |
Aufbau der Wasseroberfläche (Gittergerüst) | p. 294 |
Wasseroberfläche erstellen (inkl. Wellen und Textur) | p. 295 |
Schwimmende Kisten integrieren | p. 297 |
Rendern Alpha-Blending | p. 298 |
Nebel | p. 301 |
Was kann Nebel? | p. 302 |
Berechnungsarten | p. 302 |
Linear Fog | p. 302 |
Exponential Fog | p. 303 |
VertexFog oder Pixel-Fog/Table-Fog | p. 304 |
Prüfung | p. 305 |
Die wahre Tiefe | p. 306 |
Renderstates | p. 307 |
Beispielprogramm für Nebel | p. 308 |
Erstellen der Straße | p. 309 |
Einbinden der Meshes (Bäume und Auto) | p. 310 |
Initialisierung des Nebels | p. 311 |
Rendern | p. 312 |
Partikeleffekte | p. 315 |
Partikelstruktur | p. 317 |
Zweidimensional vs. dreidimensional | p. 318 |
Partikelklasse | p. 320 |
Rendern | p. 323 |
GUI | p. 327 |
DirectSound: Modell | p. 329 |
DirectSound-DeviceInformation | p. 330 |
DirectSound-Device | p. 330 |
DirectSound-Buffer | p. 331 |
DirectSound-3DBuffer | p. 332 |
Ausrichtung des 3DBuffers | p. 333 |
DirectSound-3DListener | p. 334 |
Ausrichtung des 3DListeners | p. 334 |
DirectSound-CaptureBuffer | p. 334 |
2DSound-Demo | p. 337 |
3DSound-Demo | p. 345 |
AudioVideoPlayback | p. 353 |
Ein Wort zu DirectMusic | p. 353 |
AudioVideoPlayback generell | p. 353 |
Audio | p. 354 |
Video | p. 358 |
DirectInput | p. 361 |
Objekthierarchie | p. 361 |
Geräteauflistung | p. 362 |
Beispielprogramm | p. 363 |
Eingabegeräte ermitteln | p. 363 |
Objekte ermitteln | p. 365 |
Kooperationsebene | p. 367 |
Datenformat | p. 368 |
Daten empfangen | p. 368 |
Keyboard (Beispielprogramm) | p. 369 |
Sourcecode-Beispiel 1 | p. 369 |
Sourcecode-Beispiel 2 | p. 370 |
Maus | p. 374 |
Kooperationsebene anlegen und das Device erzeugen | p. 375 |
Daten abfragen | p. 376 |
Joystick | p. 377 |
Angeschlossene Joysticks ermitteln | p. 379 |
Akquirieren und Achseneigenschaften festlegen | p. 380 |
Daten abfragen | p. 380 |
First-Person-Camera | p. 383 |
Variablen und Strukturen definieren | p. 384 |
Erzeugen der DirectInput-Devices | p. 385 |
Maus- und Tastaturdaten empfangen | p. 386 |
Maus- und Tastaturdaten auswerten | p. 387 |
DirectPlay | p. 391 |
Service-Provider | p. 392 |
Wie ist eine Peer-to-Peer Verbindung aufgebaut? | p. 393 |
Erstellen einer GUID | p. 394 |
Host | p. 395 |
Player | p. 395 |
Host suchen | p. 396 |
Player erstellen und an der Session anmelden | p. 398 |
Senden von Daten | p. 398 |
Empfangen von Daten | p. 399 |
Beispielprogramm: Simple Chat | p. 400 |
Kommunikationsmodelle | p. 402 |
Peer-to-Peer-Session | p. 402 |
Client/Server-Session | p. 402 |
Sicherheit | p. 402 |
Das Spiel: Return From Orion | p. 405 |
Erste Gedanken zum Spiel | p. 406 |
Von der ersten Spielidee zu einem Konzept | p. 406 |
Der Entwicklungsprozess oder die Arbeit vor der Arbeit | p. 408 |
Festlegung des Spielprinzips/Spielablaufs | p. 408 |
Die Storyline - eine Geschichte entsteht | p. 409 |
Festlegen des Designs mit Designstudien | p. 410 |
Das Konzept des Spiels | p. 411 |
Das Projekt startet | p. 413 |
Erstellen der ersten Objekte | p. 413 |
Erstellen des Basis-Devices für das Projekt | p. 415 |
Eine Welt erschaffen | p. 419 |
Die Theorie des Spielfeldes | p. 419 |
Das Spielfeld in der Praxis | p. 420 |
Spielfelddaten auslesen | p. 421 |
Performance-Steigerung im Spielfeld | p. 424 |
Das Spielfeld erstellen | p. 426 |
Die Bitmaske | p. 427 |
Das Spielfeld rendern | p. 428 |
Skydome: Die Begrenzung der Spielwelt | p. 432 |
Die Spielfigur | p. 435 |
Die Techniken der Spielfigur | p. 436 |
Bewegungsablauf - Animation der Spielfigur | p. 436 |
Bewegung der Spielfigur | p. 440 |
Relative Bewegungen im Spiel | p. 441 |
Logik der Bewegung | p. 443 |
Drehung der Spielfigur | p. 446 |
Laufen der Spielfigur | p. 448 |
Einfügen der Tastaturabfrage | p. 451 |
Einfügen des Kameramoduls | p. 457 |
Gegner: Computergesteuerte Elemente | p. 461 |
Arten von Gegnern | p. 461 |
Festgelegte Bewegungen und Aktionen | p. 461 |
Intelligente Bewegungen und Aktionen | p. 462 |
Intelligente Bewegungen, Aktionen und Kommunikation | p. 463 |
Einfügen der Gegner in """"Return From Orion"""" | p. 464 |
Künstliche Intelligenz | p. 471 |
Was ist künstliche Intelligenz? | p. 471 |
Menschlich handeln | p. 472 |
Menschlich denken | p. 472 |
Rational denken | p. 473 |
Rational handeln | p. 473 |
KI in Computerspielen | p. 473 |
KI in """"Return From Orion"""" | p. 474 |
Random-Strategie | p. 476 |
Vertikale Strategie | p. 478 |
Horizontale Strategie | p. 482 |
Änderung der KI-Strategie | p. 485 |
Kollision | p. 487 |
Kollision in DirectX | p. 487 |
BoundingBox | p. 487 |
BoundingSphere | p. 488 |
Feintuning | p. 489 |
Kollision im Spiel | p. 490 |
Soundeffekte | p. 493 |
Abschließende Funktionen | p. 497 |
Statusanzeigen erstellen und integrieren | p. 497 |
Splash-Screens | p. 502 |
Kamerafahrt am Anfang jedes Levels | p. 504 |
Framerate begrenzen | p. 506 |
Leveleditor | p. 509 |
Zeichnen des Spielfeldes | p. 510 |
Editieren der Spielfelddaten | p. 513 |
Steuerelemente des Leveleditors | p. 518 |
Das Programm-Menü | p. 524 |
Level neu erstellen | p. 524 |
Level laden | p. 526 |
Level speichern | p. 527 |
Direkt Zugriff auf ein Level | p. 527 |
Spielfeld umranden | p. 529 |
Dynamische Objekte einfügen: Random | p. 530 |
Hilfsfunktionen | p. 531 |
Fragen und Antworten zu VB.NET | p. 535 |
Fragen und Antworten zu DirectX | p. 541 |
Fragen und Antworten zu Texturen | p. 542 |
Glossar | p. 545 |
Anhang | p. 549 |
Datentypen | p. 549 |
Index | p. 551 |
Table of Contents provided by Publisher. All Rights Reserved. |
An electronic version of this book is available through VitalSource.
This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.
By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.
Digital License
You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.
More details can be found here.
A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.
Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.
Please view the compatibility matrix prior to purchase.