Now, there's a practical, hands-on guide to mastering 2D and 3D game development for Android 3.0 with the Android SDK and Eclipse IDE. One step at a time, this book teaches all facets of mobile game development, from game design and handling user input through publishing via Google's Android Market. Top game development author Jonathan S. Harbour starts with the absolute basics, making Android game development accessible even to programmers who've never written a game before. In just 24 sessions of one hour or less, he shows how to use free Android development tools to design and construct high-performance, highly-playable games for the newest Android smartphones and tablets. Among the topics covered in this book: * Getting started with the Android SDK, display system, and touch screen * Writing efficient object-oriented game code * Building superior game user interfaces * Integrating audio and GPS into your games * Controlling external applications and leveraging Java libraries * Storing game data, and much more Friendly, accessible, and conversational, this book delivers a practical grounding in Android game development without ever becoming overwhelming or intimidating. Each lesson builds on everything that's come before, helping readers learn core techniques from the ground up. Readers learn key concepts, syntax, and techniques through short, practical examples that reflect the realities of modern mobile game development.
Introduction xvii
Part I: Introduction
HOUR 1: Introducing Android 4 3
Hello, Android 4 3
About the Android SDK 7
About the Android NDK 8
Android Dev System Requirements 8
History of the Platform 9
Android Hardware Specifications 11
Summary 13
Q&A 13
Workshop 14
HOUR 2: Installing the Development Tools 15
Installing the JDK 16
Downloading the NetBeans Package 17
Installing the Package 17
Installing the Android SDK 19
Downloading the SDK 20
Installing the SDK 20
Running the Android SDK Manager 23
Installing the ADT Plug-in for Eclipse 25
Summary 28
Q&A 29
Workshop 29
HOUR 3: Configuring NetBeans and Eclipse with the Android SDK 31
Creating an Android Emulator Device 31
Plugging Android SDK into NetBeans 35
Adding Android SDK Support to Eclipse 40
Summary 45
Q&A 46
Workshop 46
Hour 4: Creating Your First Android Program 47
Creating a New Android Project 47
Building the New Project 52
Editing the “Hello, Android!” Program 60
Comparing the Emulator to an Android Device 63
Summary 72
Q&A 72
Workshop 72
Part II: Android Hardware
HOUR 5: Getting Started with Graphics 77
Understanding the Activity Class 77
Testing the Activity States 79
World’s Simplest Android Graphics Demo 86
Summary 90
Q&A 91
Workshop 91
HOUR 6: Drawing Basic Shapes and Text 93
Drawing Basic Vector Shapes 93
Drawing Text 99
Writing Code for Javadoc 103
Android Screen Densities and Resolutions 104
Summary 109
Q&A 110
Workshop 110
HOUR 7: Loading and Drawing Images 111
Double-Buffered Drawing 111
Loading a Bitmap File 115
Drawing a Bitmap 120
Summary 126
Q&A 126
Workshop 127
HOUR 8: Bringing Your Game to Life with Looping 129
Creating a Threaded Game Loop 129
Drawing Without onDraw() 132
The Runnable Animation Demo 134
Summary 140
Q&A 141
Workshop. 141
HOUR 9: Multi-Touch User Input 143
Single-Touch Input 143
Multi-Touch Input 148
Summary 155
Q&A 155
Workshop 156
HOUR 10: Using the Accelerometer 157
Android Sensors 157
Summary 168
Q&A 168
Workshop 168
HOUR 11: Using the Linear Acceleration and Proximity Sensors 169
Accessing the Linear Acceleration Sensor 169
Accessing the Proximity Sensor 177
Summary 178
Q&A 178
Workshop 178
HOUR 12: Using the Gravity and Pressure Sensors 181
Using the Gravity Sensor 181
Using the Pressure Sensor 188
Summary 189
Q&A 190
Workshop 190
HOUR 13: Creating Your Own “Tricorder” 191
Encapsulating the Android Sensors 191
Creating the Tricorder Project 195
Summary 211
Q&A 211
Workshop. 211
HOUR 14: Playing with the Audio System 213
Playing Audio Using MediaPlayer 213
Playing Audio Using SoundPool 218
Summary 221
Q&A 221
Workshop 221
Part III: Android Gameplay
HOUR 15: Building an Android Game Engine 225
Designing an Android Game Engine 226
Creating an Android Library Project 229
Writing the Core Engine Classes 234
Engine Test Demo Project 247
Summary 253
Q&A 253
Workshop 254
HOUR 16: Creating a Sprite/Actor Class 255
Static Sprite as a “Prop” 255
Dynamic Sprite as an “Actor” 257
Encapsulating Basic Sprite Functionality 258
Testing the Sprite Class 261
Summary 266
Q&A 266
Workshop 267
HOUR 17: Frame Animation Using a Sprite Sheet/Atlas 269
Animating with a Single Strip 269
Animating with a Sprite Sheet (Texture Atlas) 272
The Animation Demo 273
Summary 278
Q&A 279
Workshop 279
HOUR 18: Advanced Multi-Animation Techniques 281
Creating an Animation System 281
Animation System Demo 293
Summary 297
Q&A 297
Workshop 298
HOUR 19: Manipulating Sprites with Matrix Transforms 299
Matrix Translation 299
Matrix Rotation 305
Matrix Scaling 306
Matrix Transforms Demo 307
Summary 319
Q&A 320
Workshop 320
HOUR 20: Entity Grouping 321
Entity Grouping 321
Summary 332
Q&A 332
Workshop 332
HOUR 21: Collision Detection 333
Collision Detection Techniques 333
Demonstrating Collisions 337
Summary 347
Q&A 348
Workshop 348
HOUR 22: Using Linear Velocity for Realistic Movement 349
Calculating Velocity from a Direction 349
“Pointing” a Sprite in the Direction of Movement 352
Enhancing the Engine 355
Summary 368
Q&A 369
Workshop 369
HOUR 23: Scrolling the Background 371
Background Scrolling Overview 371
The Shoot-’Em-Up Game 374
Summary 382
Q&A 382
Workshop. 382
HOUR 24: Ball and Paddle Game 385
Creating the Ball and Paddle Game 385
Summary 394
Q&A 395
Workshop 395
Index 397