Windows移动设备游戏开发 - Windows Mobile Game Development,是由Apress推出的移动设备游戏开发书籍。该书基于C#和VB.NET两种开发语言,由浅入深的介绍Windows 移动设备游戏开发步骤。作为移动设备游戏开发人员,这本书是一本必备手册。
英文书籍(Apress.Windows.Mobile.Game.Development.May.2010),推荐下载阅读!
Contents at a Glance
■Contents at a Glance .iv
■Contents ........v
■About the Author ...... xv
■About the Technical Reviewer........... xvi
■Acknowledgments.. xvii
■Introduction .......... xviii
Part 1: Windows Mobile Development.....1
■Chapter 1: Windows Mobile and .NET ..3
■Chapter 2: Mastering the User Interface.........29
Part 2: Creating Games ............49
■Chapter 3: GDI Graphics ........51
■Chapter 4: Taming the Device with the Game Engine ..77
■Chapter 5: Timing to Perfection .......111
■Chapter 6: Exploring User Input .......129
■Chapter 7: Sounding Out with Game Audio ...157
■Chapter 8: Game in Focus: GemDrops...........179
■Chapter 9: Common Game Components........225
Part 3: OpenGL ES Graphics....243
■Chapter 10: A New Window on the World with OpenGL ES .....245
■Chapter 11: Creating 2D Games with OpenGL ............289
■Chapter 12: The Ins and Outs of the Third Dimension311
■Chapter 13: Further OpenGL Features and Techniques ...........353
Part 4: Distribution ....383
■Chapter 14: Distributing Your Game 385
■Index .........411
v
Contents
■Contents at a Glance .iv
■Contents ........v
■About the Author ...... xv
■About the Technical Reviewer........... xvi
■Acknowledgments.. xvii
■Introduction........... xviii
Part 1: Windows Mobile Development.....1
■Chapter 1: Windows Mobile and .NET ..3
Looking Closely at .NET for Windows Mobile. 4
Language Choices............4
The .NET Runtime Libraries............5
IDE Features........5
Preparing for Windows Mobile Development Challenges ........ 6
Numerous Windows Mobile Versions and Editions ..6
Hardware Considerations.8
Using Visual Studio for Windows Mobile Development.......... 10
Installing Visual Studio....10
Creating a Windows Mobile Project ..........11
Designing a Form ...........14
Running the Application.16
Working with the Emulators.........18
Targeting Different Platforms.......19
Running on a Real Device ............20
Debugging.........22
Getting Help ......24
■ CONTENTS
vi
Windows Mobile Game Development .......... 25
Suitable Games .25
Graphics APIs ....25
Technologies Used in This book...27
Welcome to the World of Windows Mobile Development ...... 27
■Chapter 2: Mastering the User Interface .........29
Developing for Touch Screen and Smart Phone Devices....... 29
The User Interface Controls ............ 31
Forms...31
Labels...35
Buttons.35
Menu Bars.........36
Context Menus ..39
Timers ..40
File Dialog Controls .........42
Input Panels ......43
Capturing Camera Images............45
The “Busy” Cursor 46
On with the Game . 47
Part 2: Creating Games49
■Chapter 3: GDI Graphics ........51
All About GDI ......... 51
Let’s Paint 51
Invalidating a Form .........53
The Drawing Coordinate System..53
Colors ...53
Pens and Brushes ..........55
Drawing Lines ...56
Drawing Polygons ..........57
Drawing Rectangles.......59
Drawing Ellipses ............59
Working with Pixels ........60
■ CONTENTS
vii
Displaying Text..60
Clearing the Background63
Painting in Action ...........63
Bitmaps... 64
Creating Bitmaps Using Graphics Primitives..........64
Creating Bitmaps from Predrawn Graphics............65
Painting Bitmaps to the Screen ...69
Bitmaps in Action ...........72
Smooth Animation. 72
Getting the Most From GDI. 76
■Chapter 4: Taming the Device with the Game Engine ..77
Designing the Game Engine............ 77
Implementing the Engine ... 79
CGameEngineBase.........79
CGameObjectBase..........85
CGameObjectGDIBase .....87
CGameEngineGDIBase ....88
CGameFunctions ............90
Using the Game Engine...... 91
Creating the Bounce Example Game.........91
Optimizing Rendering......... 98
Adding, Updating, and Deleting Objects..102
Forcing a Repaint ..........102
Performance Impact.....103
Other Engine Features ..... 103
Interacting with the Device ........103
Checking Device Capabilities.....106
Future Enhancements ...109
Next Steps........... 109
■Chapter 5: Timing to Perfection .......111
Affirming the Need for Consistent Timing.. 111
Processor Speed ..........111
■ CONTENTS
viii
Graphics Performance ..112
Multitasking ....112
Processing and Graphical Complexity.....112
Development Mode vs. Released Code...112
Overcoming Performance Inconsistencies. 112
Fixed Interval Updates ..113
Dynamic Update Intervals ..........113
Interpolated Updates....115
Using an External Timer... 120
DateTime.Now.120
Environment.TickCount .120
The High-Performance Timer.....120
Timing in the Game Engine ........... 121
Initializing and Interrogating the Timer...121
Changes to the Interpolation-Based Functions ....124
Changes to the Noninterpolation Functions .........128
Using the Game Engine.128
Let’s Bounce Again .......... 128
■Chapter 6: Exploring User Input .......129
Touch Screen Input.......... 129
Touch Screen Events ....129
Selecting, Dragging, and Swiping...........132
Adding Context Menus ..144
Using Finger-Friendly Input........146
Using Multitouch Input? 147
Using Button and Keyboard Input . 147
Button and Keyboard Events......147
Reading the Keyboard State ......149
Input from the SIP .........150
Choosing the Keyboard Input Method .....150
Reading From an Accelerometer .. 151
Initializing the Accelerometer ....151
■ CONTENTS
ix
Reading Data from the Accelerometer....152
Detecting the Presence of a Supported Accelerometer ....154
Supporting Devices With No Accelerometer ........156
Considering Input Design. 156
■Chapter 7: Sounding Out with Game Audio ...157
Understanding Sound File Types .. 157
Exploring the Available Sound APIs ........... 158
Using the Sound APIs....... 160
PlaySound .......160
System.Media.SoundPlayer .......164
AygShell Sound Functions .........167
BASS.dll ..........169
Adding Support for Sounds to the Game Engine..... 176
Choosing a Sound API ...... 177
Make Some Noise ............ 177
■Chapter 8: Game in Focus: GemDrops ...........179
Designing the Game......... 179
Creating the GemDrops Design Brief ......179
Conceptualizing the Game Controls ........182
Choosing the Sound Effects .......183
Outlining the Minimum Requirements ....183
Writing the Game 184
Creating the Project ......184
Creating the Game Form ............185
Preparing the Game ......186
Creating the Gem Game Object..188
Resetting the Game......191
Pausing the Game .........194
Displaying the Player Gems .......194
Updating the Player’s Gems.......200
Adding Player Control...208
Removing Gems from the Board 215
■ CONTENTS
x
Creating Score Objects .221
Finishing Up ........ 224
■Chapter 9: Common Game Components........225
Managing Game Settings. 225
Using the Settings Class ............226
Understanding How the CSettings Class Works...228
Replacing the MessageBox........... 230
Using the MessageBox Class .....230
Understanding How the CMessageBox Class Works ........231
Creating a High Score Table ......... 232
Using the High Score Class ........232
Understanding How the CHighScores Class Works...........235
Creating an About Box ..... 238
Using the About Box Class .........239
Understanding How the CAboutBox Class Works.241
Using Common Game Components............ 241
Part 3: OpenGL ES Graphics....243
■Chapter 10: A New Window on the World with OpenGL ES .....245
Preparing to Use OpenGL . 245
Hardware Support........245
Language Support........246
Understanding the OpenGL Features ......246
Rendering in 3D ...........247
Using OpenGL in Visual Studio.NET............ 248
Calling OpenGL from Managed Languages ..........248
Understanding OpenGL’s Rendering Approach ....249
Considering the Hardware Capabilities and Limitations ...249
Closing OpenGL Applications .....250
Creating an OpenGL Program........ 250
Configuring the Project .250
Creating the OpenGL Environment ..........252
Initializing OpenGL ........254
■ CONTENTS
xi
Rendering Graphics in OpenGL ..256
Adding Form Functions .260
Terminating OpenGL .....261
Running the Program ....262
Adding Some Sparkle...263
Using Matrix Transformations....... 264
Setting the Identity Matrix..........264
Applying Translation Transformations ....265
Applying Rotation Transformations.........265
Applying Scaling Transformations ..........266
Applying Multiple Transformations .........267
Specifying Vertex Positions........269
Pushing and Popping the Matrix 269
Practicing Matrix Transformations with Example Projects ............269
Drawing Functions ........... 274
Drawing Points274
Drawing Lines .274
Drawing Triangles........275
Using Texture Mapping .... 277
Loading Graphics ..........277
Rendering with Textures............278
Specifying Texture Coordinates .280
Cleaning Up.....282
Using Transparency and Alpha Blending ... 282
Applying Transparency .282
Alpha Blending 283
Alpha Blending with Textures ....284
Knowing the Available Blending Factors.285
Understanding Orthographic Coordinate Systems.. 286
Taking Control of OpenGL 288
■Chapter 11: Creating 2D Games with OpenGL ............289
Adding OpenGL to the Game Engine .......... 289
■ CONTENTS
xii
Understanding the CGameEngineOpenGLBase Class........290
Understanding the CGameObjectOpenGLBase Class ........292
Performing the Capabilities Check..........294
Creating the Game Form ............296
Using the OpenGL Game Engine ... 298
Preparing the Balloons Game.....298
Setting up the Projection Matrix 299
Rendering the Balloons.301
Sorting the Balloons.....303
Playing the Game ..........306
2D Possibilities with OpenGL ........ 309
■Chapter 12: The Ins and Outs of the Third Dimension311
Understanding Perspective Projection....... 311
Understanding the Viewing Frustum.......311
Defining the Viewing Frustum in OpenGL ............315
Understanding the Depth Buffer ... 316
Enabling the Depth Buffer..........316
Rendering Transparent Objects with the Depth Buffer .....318
Rendering 3D Objects ...... 318
Defining a 3D Object .....318
Removing Hidden Surfaces........324
Using Indexed Triangles326
Lighting Your Projects...... 329
Introducing the Lights and Materials ......329
Exploring the Types of Illumination.........329
Using Material Properties...........332
Exploring Light and Material Interaction .333
Using Multiple Lights ....333
Reusing Lights 334
Exploring the Types of Light Source .......334
Calculating Light Reflections in OpenGL .336
Adding Light to the Game Engine............340
■ CONTENTS
xiii
Calculating Normals Programmatically...347
Using Normals with Scaled Objects ........351
Mastering the 3D World ... 352
■Chapter 13: Further OpenGL Features and Techniques ...........353
Importing Geometry ......... 353
Introducing SketchUp...353
Using the .0bj File Format ..........357
Importing Geometry into the Game Engine ..........359
Moving the Camera.......... 364
Positioning the Camera.364
Adding Camera Objects to the Game Engine .......365
Lights, Camera, Action!.370
Optimizing the Camera Calculation.........371
Cameras and the Projection Matrix.........374
Rendering Fog..... 374
Adding Fog Support to the Game Engine 375
Using Fog ........375
Working with Billboards... 377
Rendering Billboards....377
Adding Billboard Support to the Game Engine.....379
Learning More about OpenGL ES .. 381
Part 4: Distribution ....383
■Chapter 14: Distributing Your Game.385
Preparing a Game for Distribution 385
Settings the Assembly Properties ...........385
Project Versioning .........387
Creating an Icon ...........388
Building Distribution Packages ..... 391
Switching into Release Mode.....391
Creating the Setup Project .........392
Adding the Setup Project’s Files 393
Creating a Programs Menu Shortcut.......395
■ CONTENTS
xiv
Building the CAB File.....397
Selling Games ..... 397
Creating Evaluation Applications ............397
Upgrading to Full Versions .........398
Using Windows Marketplace for Mobile .400
Minimizing Piracy.........401
Implementing Reverse Engineering ........... 402
Obfuscating with Dotfuscator Community Edition ............403
Using Advanced Obfuscation .....405
Adding Obfuscated Files to CAB Setup Projects ..407
Releasing New Versions of Your Game...... 407
Promoting Your Game ...... 409
Go Create! ........... 410
■Index ... 411
网友评论