Tous nos rayons

Déjà client ? Identifiez-vous

Mot de passe oublié ?

Nouveau client ?

CRÉER VOTRE COMPTE
Isometric Game Programming with DirectX 7.0
Ajouter à une liste

Librairie Eyrolles - Paris 5e
Indisponible

Isometric Game Programming with DirectX 7.0

Isometric Game Programming with DirectX 7.0

Ernest Pazera

720 pages, parution le 01/05/2001

Résumé

Finally, a guide to Isometric game programming at your fingertips!

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

hInstance
Window Class
The Message Pump
Creating a Window
dwExStyle
lpClassName
lpWindowName
dwStyle
x,y
nWidth, nHeight
nHwndParent
hMenu
hInstance
lpParam
Other Initialization
Checking for Messages
Processing Messages
Running a Single Frame of the Game
Cleanup and Exit
The Window Procedure
Sending Messages to a Window
Using Window Messages to Process Input
Mouse Messages
Other Window Messages
WM_ACTIVATEAPP
Managing Your Windows
SetWindowPos
MoveWindow
GetWindowInfo
GetWindowText and GetWindowTextLength
SetWindowText
System Metrics
Summary

Chapter 2: The World of GDI and Windows Graphics
RECT and POINT

The POINT Structure
The RECT Structure
RECT and POINT Functions
Anatomy of a Window
GetClientRect
GetWindowRect
AdjustWindowRect and Adjust WindowRectEx
Device Contexts
Obtaining Device Contexts
Memory DCs
GDI Objects
SelectObject
Pixel Plotting with GDI
The RGB Macro
Pixel Manipulation Functions
A Pixel Plotting Example
Using Pens
CreatePen
Drawing Functions
A Line Drawing Example
Brushes
Brush Creation
ExtFloodFill
A Brush Example
Filling in Rectangular Areas
Pens and Brushes Together: Shape Functions
Ellipse
Rectangle
RoundRect
Polygon
Summary

Chapter 3: Fonts, Bitmaps, and Regions
Working with Fonts

AddFontResource
RemoveFontResource
CreateFont
Outputting with Fonts
Creating and Using Regions
Creating Regions
Using Regions
Other Uses for Regions
Creating and Using Bitmaps
Creating a Blank Bitmap
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
Summary

Chapter 4: DirectX at a Glance
DirectX Components
DirectX Configuration
Tradition and COM

Version Control
Reference Counting
Summary

Chapter 5: Using DirectDraw
Creating the IDirectDraw7 Object

About HRESULT
Setting the Cooperative Level
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

DDSURFACEDESC2
Creating a Primary Surface
Creating a Secondary Surface/Back Buffer
Flipping
Off-Screen Surfaces
Using Surfaces
GetDC/ReleaseDC, or Using GDI on Surfaces
Blt
BltFast
The Nitty-Gritty: Lock and Unlock
A DirectDraw Wrapper
DDSURFACEDESC2 Functions
DDSCAPS2 Functions
DDBLTFX Functions
Pixel Format Functions
LPDIRECTDRAW7 Functions
LPDIRECTDRAWSURFACE7 Functions
Tasks Not Included in the Wrapper
Empowering the User
Summary

Chapter 7: IDirectDrawClipper Objects and Windowed DirectDraw
Using IDirectDrawClipper

Creating Clippers
Setting up a Clipping Region
Assigning a Clipper to a Surface
Windowed DirectDraw
Differences between Full-Screen and Windowed DirectDraw
Display Modes
No Back Buffers
Clippers in Windowed DirectDraw
Summary

Chapter 8: DirectSound
The Nature of Sound

How Our Ears Work (the Really Simplified Version)
How Speakers Work
How Sound Cards Work
The WIN32 Way to Play Sounds
The IDirectSound Object
Creating the DirectSound Object
Setting the Cooperative Level
The IDirectSoundBuffer Object
Creating Sound Buffers
The WAVEFORMATEX Structure
Control Flags
Locking and Unlocking Sound Buffers
Playing Sounds
Duplicating Sound Buffers
Using WAV Files
Using HANDLEs to Do File Operations
The Structure of a WAV file
Loading a WAV File from Disk
Using CWAVLoader to Load from a File to a DirectSoundBuffer
The DSFuncs Library
LPDSB_LoadFromFile
LPDSB_Release
Empowering the User
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

Initial Concept
Fleshing It Out
From Theory to Practice
The Arcade/Action Genre
Isometric Games
Empowering the User: Giving Thought to the User Interface
A Few Notes About Controls
Making a Real Game
Game State
A Few Words about Finishing Games
A Few Tips for Finishing Games
Summary

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 Class Declaration
An Animated Sprite Example
Setting up
The-Main Loop
Cleaning up
Taking Control
Tilemap Basics
More Complicated Tilemaps
Rendering a Tilemap
Screen Space
World Space and View Space
A Simple TileMap Editor
Constants
Globals
Set up and Clean up
The Main Loop
Accepting Input
A Few Words about the TileMap Editor
A Tile-Based Example: Reversi
Designing Reversi
Implementation of Reversi
Final Words on Reversi
Summary

Chapter 11: Isometric/Hexagonal Tile Overview
Introduction to IsoHex
IsoHex Tiles versus Rectangular Tiles
IsoHex Tilemaps versus Rectangular Tilemaps
Isometric Engines versus Rectangular Engines

TilePlotter
MouseMap
TileWalker
The Three Types of IsoHex Tilemaps
Slide Maps
Staggered Maps
Diamond Maps
IsoHex Tilesets and the Importance of Anchors
Summary

Chapter 12: Slide Isometric Tilemaps
Interlocking IsoHex Tiles
Coordinate System
Tile Plotting
Scrolling
Tile Walking

North
Northeast
South
Southwest
The Code for IsoHexl2_3
Mousemapping
Step-By-Step Mousemapping
A Mousemapping Example
Summary

Chapter 13: Staggered Tilemaps
Coordinate System
Tileplotting
Tilewalking

Even Y Tilewalking
Odd Y Tilewalking
Mousemapping in Staggered Maps
Unique Properties of Staggered Maps
No Jaggies
Cylindrical Maps

Chapter 14: Diamond Maps
Coordinate System
Tileplotting

The Tileplotting Function
Diamond Map Tileplotting Demo
Blitting Order
Scrolling Revisited
A Diamond Map Scrolling Demo
Tilewalking
Mousemapping
Summary

Chapter 15: The IsoHexCore Engine
Overview of IsoHexCore
IsoHexDefs.h

ISODIRECTION
ISODIRECTION Macros
ISOMAPTYPE
IsoTilePlotter.h/IsoTilePlotter.cpp
ISOHEXTILEPLOTTERFN
CTilePlotter
Using CTilePlotter
IsoTileWalker.h/IsoTileWalker.cpp
ISOHEXTILEWALKERFN
CTileWalker
Using CTileWalker
IsoScroller.h/IsoScroller.cpp
SCROLLERWRAPMODE
CScroller
Using CScroller
IsoMouseMap.h/IsoMouseMap.cpp
MOUSEMAPDIRECTION
CMouseMap
Using CMouseMap
IsoHexCore.h
An IsoHexCore Example
Globals
Initialization and Cleanup
Main Loop
Event Handling
Summary

Part III: Isometric Methodology

Chapter 16: Layered Maps and Optimized Rendering
Layered Map Basics
Layered Map Methods

Tile Scale Layering
Map Scale Layering
What's the Big Deal?
A More Efficient Tile Blitting Algorithm
Code Example: Reducing the Number of Blits per Frame
Summary

Chapter 17: Further Rendering Optimizations
Get Rid of Blt

Moving to BltFast
A BltFast Example
Whittling down the Blits per Frame
Frame Buffer Scrolling
Update Rectangles
An Isometric Rendering Class
Building CRenderer
A CRenderer Example
Summary

Chapter 18: Object Placement and Movement
Object Placement (COP versus FOP)
Coarse Object Placement

Moving Objects Around
Multiple Objects
Multiple Units
Summary

Chapter 19: Object Selection
Simple Object Selection

Simple Object Selection Design
Simple Object Selection Implementation
Pixel-Perfect Object Selection
Making It Happen
Minimap, Zones of Control, and the Fog of War
Minimaps
Minimap Example
Zones of Control
Fog of War
Implementing a Fog of War
Summary

Chapter 20: Isometric Art
Tile Ripping and Slanting

Tile Slanting
Tile Ripping
Extra Graphical Operations
Grayscaling
Modulation
Summary

Chapter 21: Fringes and Interconnecting Structures
Fringes

Art Requirements for Fringes
Making a Lookup Table
A Fringing Example
A Final Note about Fringes
Interconnecting Structures
Four-Direction Structures
Eight-Direction Structures
Summary

Part IV: Advanced Topics

Chapter 22: World Generation
What Is World Generation?
Using Mazes

What Is a Maze?
Creating a Maze
Using a Maze
A Few Words about Isometric Mazes
Growing Continents
Summary

Chapter 23: Pathfinding and AI
What Is AI?
Really Simple AI Stuff
More Advanced Pathfinding Algorithm

Step 1: Scan Array for Cells Adjacent to Cells with Known Distances
Step 2: Give Adjacent Squares a Known Distance Value
When It's All Done
Making Pathfinding Useful
Summary

Chapter 24: Introduction to Direct3D
Direct3D as a 2D Renderer

3D Games (and 3D APIs) Are Still Only 2D
How Direct3D Works
Direct3D Basics
Icky COM Stuff
Surface Creation
Creating a Device
Making a Viewport
Rendering
A Simple Direct3D Example
Textures
What Is a Texture?
Texture Mapping and Texture Coordinates
Texture Mapping Example
Summary

Chapter 25: The Much-Anticipated ISO3D
D3DFuncs.h/D3DFuncs.cpp

LPD3D Functions
LPD3DDEV Functions
LPDDS Functions
Texture Functions
Vector Function
The D3D Shell Application
Plotting Tiles in IS03D
2D Sprites Using Direct3D
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
Dynamic Lighting
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

Livraison à partir de 0,01 en France métropolitaine
Paiement en ligne SÉCURISÉ
Livraison dans le monde
Retour sous 15 jours
+ d'un million et demi de livres disponibles
satisfait ou remboursé
Satisfait ou remboursé
Paiement sécurisé
modes de paiement
Paiement à l'expédition
partout dans le monde
Livraison partout dans le monde
Service clients sav@commande.eyrolles.com
librairie française
Librairie française depuis 1925
Recevez nos newsletters
Vous serez régulièrement informé(e) de toutes nos actualités.
Inscription