Table Of Contentptg999
Jonathan S. Harbour
SamsTeachYourself
Windows
®
Phone 7
ptg999
Game Programming
24
in
Hours
800 East 96th Street,Indianapolis,Indiana,46240 USA
Sams Teach Yourself Windows®Phone 7 Game Programming in 24 Hours Editor-in-Chief
Copyright © 2012 by Sams Publishing Greg Wiegand
All rights reserved. No part of this book shall be reproduced,stored in a retrieval system,or
Executive Editor
transmitted by any means,electronic,mechanical,photocopying,recording,or otherwise,without
written permission from the publisher. No patent liability is assumed with respect to the use of Neil Rowe
the information contained herein. Although every precaution has been taken in the preparation of
Development
this book,the publisher and author assume no responsibility for errors or omissions. Nor is any
Editor
liability assumed for damages resulting from the use of the information contained herein.
Mark Renfrow
ISBN-13: 978-0-672-33554-9
ISBN-10: 0-672-33554-9 Managing Editor
Library of Congress Cataloging-in-Publication Data is on file. Kristy Hart
Printed in the United States of America
Project Editor
First Printing November 2011
Andrew Beaster
Trademarks
All terms mentioned in this book that are known to be trademarks or service marks have been Copy Editor
appropriately capitalized. Sams Publishing cannot attest to the accuracy of this information. Use Cheri Clark
of a term in this book should not be regarded as affecting the validity of any trademark or service
Indexer
mark.
Ken Johnson
Warning and Disclaimer
Every effort has been made to make this book as complete and as accurate as possible,but no Proofreader
warranty or fitness is implied. The information provided is on an “as is” basis. The author and the Sarah Kearns
publisher shall have neither liability nor responsibility to any person or entity with respect to any
loss or damages arising from the information contained in this book. Technical Editor
Bulk Sales Jim Perry
Sams Publishing offers excellent discounts on this book when ordered in quantity for bulk pur-
Publishing
chases or special sales. For more information,please contact
Coordinator
U.S. Corporate and Government Sales
Cindy Teeters
1-800-382-3419
[email protected] Book Designer ptg999
For sales outside of the U.S.,please contact Gary Adair
International Sales
Composition
[email protected]
Nonie Ratcliff
Contents at a Glance
Introduction................................................................................1
Part I: Introduction
HOUR 1 Introduction to Windows Phone 7.................................................. 9
2 Getting Started with Visual C# 2010 for Windows Phone..................21
3 Printing Text.............................................................................39
4 Getting User Input......................................................................51
5 Drawing Bitmaps.......................................................................59
Part II: Sprite Programming
HOUR 6 Treating Bitmaps as Sprites..........................................................73 ptg999
7 Transforming Sprites...................................................................89
8 More Sprite Transforms: Rotation and Scaling...............................101
9 Advanced Linear and Angular Velocity........................................117
10 When Objects Collide................................................................131
11 Managing Lots of Sprites...........................................................149
12 Sprite Color Animation.............................................................163
13 Sprite Transform Animation.......................................................181
14 Sprite Frame Animation............................................................197
15 Transforming Frame Animations................................................213
16 Drawing with Z-Index Ordering..................................................231
Part III: Gameplay
HOUR 17 Using Location Services (GPS).....................................................241
18 Playing Audio..........................................................................255
19 Reading and Writing Files Using Storage......................................265
20 Creating a Graphical User Interface.............................................277
21 Finite State Gameplay...............................................................295
iv
Sams Teach Yourself Windows Phone 7 Game Programming in 24 Hours
22 The Physics of Gravity...............................................................311
23 Rocket Science: Acceleration.......................................................323
24 The Black Hole Game................................................................337
Index.....................................................................................359
ptg999
Table of Contents
Introduction 1
Audience and Organization .................................................................. 1
Conventions Used in This Book .............................................................. 5
Resource Files ...................................................................................... 5
Part I: Introduction
HOUR 1: Making Games for Windows Phone 7 9
Getting Started with Windows Phone 7.................................................... 9
Windows Phone 7 as a Game Platform? ................................................ 10
History of the Platform........................................................................ 11 ptg999
Hardware Specifications ...................................................................... 16
Summary.......................................................................................... 17
Q&A ................................................................................................ 18
Workshop.......................................................................................... 18
HOUR 2: Getting Started with Visual C# 2010 for Windows Phone 21
Visual C# 2010 Express........................................................................ 21
Using Silverlight for WP7 .................................................................... 24
XNA Game Studio .............................................................................. 30
XNA or Silverlight: What’s the Verdict? .................................................. 37
Summary.......................................................................................... 37
Q&A ................................................................................................ 38
Workshop.......................................................................................... 38
HOUR 3: Printing Text 39
Creating the Font Demo Project ............................................................ 39
Adding a New Font to the Content Project.............................................. 41
Learning to Use the SpriteFont Class...................................................... 45
vi
Sams Teach Yourself Windows Phone 7 Game Programming in 24 Hours
Printing Text...................................................................................... 46
Summary.......................................................................................... 48
Q&A ................................................................................................ 48
Workshop.......................................................................................... 49
HOUR 4: Getting User Input 51
Exploring Windows Phone Touchscreen Input ........................................ 51
Simulating Touch Input ...................................................................... 52
Using Gestures on the Touchscreen........................................................ 55
Summary.......................................................................................... 56
Q&A ................................................................................................ 57
Workshop.......................................................................................... 57
HOUR 5: Drawing Bitmaps 59
Adding a Bitmap File to an XNA Project ................................................ 59
ptg999
Loading a Bitmap File as an Asset ........................................................ 62
Drawing a Bitmap with SpriteBatch ...................................................... 63
Drawing Bitmaps with Transparency .................................................... 65
Summary.......................................................................................... 68
Q&A ................................................................................................ 68
Workshop.......................................................................................... 69
Part II:Sprite Programming
HOUR 6: Treating Bitmaps as Sprites 73
Bringing Bitmaps to Life...................................................................... 73
Drawing Lots of Bitmaps...................................................................... 74
Running into Limits with Global Variables.............................................. 76
Creating a Simple Sprite Class.............................................................. 79
Summary.......................................................................................... 87
Q&A ................................................................................................ 88
Workshop.......................................................................................... 88
vii
Contents
HOUR 7: Transforming Sprites 89
Translating (Moving) a Sprite .............................................................. 89
Using Velocity as Movement Over Time.................................................. 91
Moving Sprites in a Circle.................................................................... 94
Summary.......................................................................................... 98
Q&A ................................................................................................ 98
Workshop.......................................................................................... 98
HOUR 8:More Sprite Transforms: Rotation and Scaling 101
Rotating a Sprite .............................................................................. 101
Scaling a Sprite ................................................................................ 108
Summary ........................................................................................ 114
Q&A .............................................................................................. 114
Workshop........................................................................................ 115
ptg999
HOUR 9:Advanced Linear and Angular Velocity 117
Calculating Angular Velocity.............................................................. 117
“Pointing” a Sprite in the Direction of Movement .................................. 124
Summary ........................................................................................ 129
Q&A .............................................................................................. 129
Workshop........................................................................................ 129
HOUR 10: When Objects Collide 131
Boundary Collision Detection.............................................................. 131
Radial Collision Detection.................................................................. 139
Assessing the Damage ...................................................................... 141
Summary ........................................................................................ 147
Q&A .............................................................................................. 147
Workshop........................................................................................ 147
HOUR 11:Managing Lots of Sprites 149
Robot Trash Collectors ...................................................................... 149
Summary ........................................................................................ 160
Q&A .............................................................................................. 160
Workshop........................................................................................ 161
viii
Sams Teach Yourself Windows Phone 7 Game Programming in 24 Hours
HOUR 12: Sprite Color Animation 163
Getting Started with Color Animation.................................................. 163
Color Animation .............................................................................. 167
Summary ........................................................................................ 178
Q&A .............................................................................................. 178
Workshop........................................................................................ 179
HOUR 13:Sprite Transform Animation 181
Adding Transform Support to the Animation Class ................................ 181
Combining Multiple Animations ........................................................ 189
Summary ........................................................................................ 194
Q&A .............................................................................................. 194
Workshop........................................................................................ 195
HOUR 14: Sprite Frame Animation 197
ptg999
Drawing Animation Frames................................................................ 198
Creating the Frame Animation Demo .................................................. 202
Summary ........................................................................................ 209
Q&A .............................................................................................. 210
Workshop........................................................................................ 210
HOUR 15: Transforming Frame Animations 213
Drawing Frames with Color Mods........................................................ 213
Drawing Frames with Transform Mods ................................................ 218
Animation Mods Demo...................................................................... 224
Summary ........................................................................................ 228
Q&A .............................................................................................. 228
Workshop........................................................................................ 229
HOUR 16: Drawing with Z-Index Ordering 231
Prioritized Drawing .......................................................................... 231
Summary ........................................................................................ 237
Q&A .............................................................................................. 237
Workshop........................................................................................ 238
ix
Contents
Part III:Gameplay
HOUR 17: Using Location Services (GPS) 241
GPS 101 .......................................................................................... 241
Windows Phone Location Services........................................................ 243
Simulating Position Changes.............................................................. 245
Creating the Geo Position Demo.......................................................... 249
Summary ........................................................................................ 252
Q&A .............................................................................................. 252
Workshop........................................................................................ 253
HOUR 18: Playing Audio 255
Getting Started with Windows Phone Audio.......................................... 255
Creating the Audio Demo Program...................................................... 259
Summary ........................................................................................ 262
ptg999
Q&A .............................................................................................. 262
Workshop........................................................................................ 263
HOUR 19: Reading and Writing Files Using Storage 265
Using Windows Phone Isolated Storage ................................................ 265
Creating the Storage Demo Example.................................................... 270
Summary ........................................................................................ 274
Q&A .............................................................................................. 275
Workshop........................................................................................ 275
HOUR 20: Creating a Graphical User Interface 277
Creating the GUI Controls.................................................................. 278
Demonstrating the GUI Controls.......................................................... 287
Summary ........................................................................................ 292
Q&A .............................................................................................. 292
Workshop........................................................................................ 292