Résumé
Isometric Game Programming with DirectX takes you from zero to DirectX, literally! Beginning with game programming basics you will explore such topics as WIN32 programming basics, GDI fundamentals, fonts, regions and bitmaps, DirectDraw, and Game Logic. You'll then move on to Isometric fundamentals and methodology as well as advanced topics such as Random World Generation and Direct3D.This book is a comprehensive Isometric game programming guide ideal for any serious game developer!
What's on the CD:- DirectX® 8 Software Development Kit
- Source code and art from the book
- Additional art and source code from selected articles
- Jasc® Paint Shop ProTM
Contents
Introduction
Part I: The Basics
Chapter 1: Introduction to WIN32
Programming
Conceptual Overview of Windows Programs
Of HWNDs and HINSTANCEs
Life in an Event-Driven Operating System
Window Procedures
The WinMain Function
Window Class
Creating a Window
lpClassName
lpWindowName
dwStyle
x,y
nWidth, nHeight
nHwndParent
hMenu
hInstance
lpParam
Processing Messages
Running a Single Frame of the Game
Cleanup and Exit
Using Window Messages to Process Input
Other Window Messages
WM_ACTIVATEAPP
Managing Your Windows
MoveWindow
GetWindowInfo
GetWindowText and GetWindowTextLength
SetWindowText
Summary
Chapter 2: The World of GDI and Windows
Graphics
RECT and POINT
The RECT Structure
RECT and POINT Functions
GetWindowRect
AdjustWindowRect and Adjust WindowRectEx
Memory DCs
Pixel Manipulation Functions
A Pixel Plotting Example
Drawing Functions
A Line Drawing Example
ExtFloodFill
A Brush Example
Filling in Rectangular Areas
Rectangle
RoundRect
Polygon
Chapter 3: Fonts, Bitmaps, and Regions
Working with Fonts
RemoveFontResource
CreateFont
Outputting with Fonts
Using Regions
Other Uses for Regions
Loading a Bitmap from Disk
Using a Bitmap
Raster Operation Example
An Application of Raster Operations: Bitmasking
A Bitmap Management Class
A CGDICanvas Example
Double Buffering with GDI
Chapter 4: DirectX at a Glance
DirectX Components
DirectX Configuration
Tradition and COM
Reference Counting
Chapter 5: Using DirectDraw
Creating the IDirectDraw7 Object
Enumerating Display Modes
Setting the Display Mode
Retrieving the Current Display Mode
A Final Thing: Releasing Objects
Summary
Chapter 6: Surfaces
What Is a Surface?
Creating a Surface
Creating a Primary Surface
Creating a Secondary Surface/Back Buffer
Flipping
Off-Screen Surfaces
Blt
BltFast
The Nitty-Gritty: Lock and Unlock
DDSCAPS2 Functions
DDBLTFX Functions
Pixel Format Functions
LPDIRECTDRAW7 Functions
LPDIRECTDRAWSURFACE7 Functions
Tasks Not Included in the Wrapper
Summary
Chapter 7: IDirectDrawClipper Objects and Windowed
DirectDraw
Using IDirectDrawClipper
Setting up a Clipping Region
Assigning a Clipper to a Surface
Display Modes
No Back Buffers
Clippers in Windowed DirectDraw
Chapter 8: DirectSound
The Nature of Sound
How Speakers Work
How Sound Cards Work
The IDirectSound Object
Setting the Cooperative Level
The WAVEFORMATEX Structure
Control Flags
Locking and Unlocking Sound Buffers
Playing Sounds
Duplicating Sound Buffers
The Structure of a WAV file
Loading a WAV File from Disk
Using CWAVLoader to Load from a File to a DirectSoundBuffer
LPDSB_Release
Summary
Chapter 9: Game Design Theory
A Definition of Game
The Intangible Nature of Games
Why We Play
Computer Games
Game Analysis
Designing a Game
Fleshing It Out
Isometric Games
Part II: Isometric Fundamentals
Chapter 10: Tile-Based Fundamentals
What Does "Tile-Based" Mean?
Myths about Tile-Based Games
Tile-Based Terminology
An Introduction to Rectangular Tiles
Managing Tilesets
A TileSet Class
The-Main Loop
Cleaning up
Tilemap Basics
World Space and View Space
Globals
Set up and Clean up
The Main Loop
Accepting Input
A Few Words about the TileMap Editor
Implementation of Reversi
Final Words on Reversi
Chapter 11: Isometric/Hexagonal Tile
Overview
Introduction to IsoHex
IsoHex Tiles versus Rectangular Tiles
IsoHex Tilemaps versus Rectangular Tilemaps
Isometric Engines versus Rectangular Engines
MouseMap
TileWalker
Staggered Maps
Diamond Maps
Summary
Chapter 12: Slide Isometric Tilemaps
Interlocking IsoHex Tiles
Coordinate System
Tile Plotting
Scrolling
Tile Walking
Northeast
South
Southwest
The Code for IsoHexl2_3
A Mousemapping Example
Chapter 13: Staggered Tilemaps
Coordinate System
Tileplotting
Tilewalking
Odd Y Tilewalking
Mousemapping in Staggered Maps
Cylindrical Maps
Chapter 14: Diamond Maps
Coordinate System
Tileplotting
Diamond Map Tileplotting Demo
Blitting Order
Tilewalking
Summary
Chapter 15: The IsoHexCore Engine
Overview of IsoHexCore
IsoHexDefs.h
ISODIRECTION Macros
ISOMAPTYPE
CTilePlotter
Using CTilePlotter
CTileWalker
Using CTileWalker
CScroller
Using CScroller
CMouseMap
Using CMouseMap
An IsoHexCore Example
Initialization and Cleanup
Main Loop
Event Handling
Part III: Isometric Methodology
Chapter 16: Layered Maps and Optimized
Rendering
Layered Map Basics
Layered Map Methods
Map Scale Layering
What's the Big Deal?
Chapter 17: Further Rendering Optimizations
Get Rid of Blt
A BltFast Example
Update Rectangles
An Isometric Rendering Class
Building CRenderer
A CRenderer Example
Chapter 18: Object Placement and Movement
Object Placement (COP versus FOP)
Coarse Object Placement
Multiple Objects
Multiple Units
Chapter 19: Object Selection
Simple Object Selection
Simple Object Selection Implementation
Minimap Example
Zones of Control
Fog of War
Implementing a Fog of War
Chapter 20: Isometric Art
Tile Ripping and Slanting
Tile Ripping
Modulation
Chapter 21: Fringes and Interconnecting
Structures
Fringes
Making a Lookup Table
A Fringing Example
A Final Note about Fringes
Eight-Direction Structures
Part IV: Advanced Topics
Chapter 22: World Generation
What Is World Generation?
Using Mazes
Creating a Maze
Using a Maze
A Few Words about Isometric Mazes
Summary
Chapter 23: Pathfinding and AI
What Is AI?
Really Simple AI Stuff
More Advanced Pathfinding Algorithm
Step 2: Give Adjacent Squares a Known Distance Value
When It's All Done
Summary
Chapter 24: Introduction to Direct3D
Direct3D as a 2D Renderer
How Direct3D Works
Surface Creation
Creating a Device
Making a Viewport
Rendering
A Simple Direct3D Example
Texture Mapping and Texture Coordinates
Texture Mapping Example
Chapter 25: The Much-Anticipated ISO3D
D3DFuncs.h/D3DFuncs.cpp
LPD3DDEV Functions
LPDDS Functions
Texture Functions
Vector Function
The D3D Shell Application
Enumerating Texture Formats
Texture Format Callback
Creating the Texture Surface
Lock and Unlock Review
Loading Pixel Data
Render States
Setting Up Vertices
3D Transparency Example
Height Mapping
Tile Selection/Mousemapping
Summary
Chapter 26: The Road Ahead
Current Trends
What Lies Ahead
Part V: Appendices
Appendix A: Loading Sample Projects Into the
IDE
Coding Conventions
Appendix B: Hexagonal Tile-Based Games
Iso versus Hex
What's the Difference?
Summary
Appendix C: IsoHex Resources
See the Sites
Hit the Books
Drop Me a Line
L'auteur - Ernest Pazera
Ernest Pazera is a self-taught programmer. At age 13 his father bought him a TRS-80 with a tape deck. Within a month, Mr. Pazera was writing video games. By age 15, he realized that he could be happy with nothing less than being a game programmer. Ernest is one of the developers who helped to create one of the most popular and respected game development sites on the Web www.gamedev.net. He is a moderator of an isometric/hexagonal forum on the site and has extensive experience with game development.
Caractéristiques techniques
PAPIER | |
Éditeur(s) | Prima Publishing |
Auteur(s) | Ernest Pazera |
Parution | 01/05/2001 |
Nb. de pages | 720 |
Format | 18,8 x 23,2 |
Couverture | Broché |
Poids | 1296g |
Intérieur | Noir et Blanc |
EAN13 | 9780761530893 |
Avantages Eyrolles.com
Consultez aussi
- Les meilleures ventes en Graphisme & Photo
- Les meilleures ventes en Informatique
- Les meilleures ventes en Construction
- Les meilleures ventes en Entreprise & Droit
- Les meilleures ventes en Sciences
- Les meilleures ventes en Littérature
- Les meilleures ventes en Arts & Loisirs
- Les meilleures ventes en Vie pratique
- Les meilleures ventes en Voyage et Tourisme
- Les meilleures ventes en BD et Jeunesse