/**-Enter (Javadoc comments), 103-104
2D from 3D coordinates, gravity sensors, converting, 183
3D rendering, Android NDK support, 8
3D to 2D coordinates, gravity sensors, converting, 183
ABD (Android Debug Bridge)
versus USB device driver, 65-68
AC3 (FFmpeg) audio format, 217
accelerometer sensors, 157-158, 193, 209
accelMotion variable, 162
disabling screen orientation changes, 159-160
versus linear acceleration, 169
Activity class
base application class, 78
methods, 78
overridable, 78
setTitle(), 78
addAnimation() method, Sprite class, 287
addToGroup() method, Engine class, 324, 392
adjustAlpha() method, Animation class, 282
adjustPosition() method, Animation class, 282
adjustRotation() method, Animation class, 282
adjustScale() method, Animation class, 282
ADT (Android Development Tools) plug-in
Android “wizard” dialog, 80
AIFF (Apple) signed 16-bit PCM audio format, 217
AlphaAnimation class, 287
alpha channels, GIMP graphic editor, 121-124
Amazon
digital media industry, 9
Kindle Fire
Android 2.2 Eclair, 69
Android 4.0 Ice Cream Sandwich, 69
sensors reported, 164
AMR (narrow band) (FFmpeg) audio format, 217
Android 4/Google. See also Android OS/devices
Apps screen, 6
based on Linux 3.0, 3
compatibility of games/apps, 6
versus iPhone, 4
non proprietary, 4
Plants vs. Zombies, 7
programming games, 7
Search field with voice recognition, 4
Unity game engine support, 226
Android Development Tools (ADT), 25-28
android.graphics.Bitmap namespace, 112
android.hardware classes
methods
getSensorList(), 163
SensorEventListener, 158, 162, 165
Android NDK, C++ for components, 8
pixel buffer access, 8
support for 3D rendering and audio, 8
Android OS/devices. See also Android 4/Google
ABD (Android Debug Bridge)
versus USB device driver, 65-68
adult toy, 7
Android Device Settings, options, 66-67
derivative of iOS/Apple, 9
Linux kernel numbers, 10
release dates, 10
versions and code names, 10
versus iPhone, 4
logo, 12
Mac OS X or Linux development, 66
non proprietary, 4
quick-to-market release, 10
rooting, 66
tablets, screen definitions, 107-108
versions to program for, 69
XNA Game Studio, Microsoft, similar to Android, 78
Android SDK (Software Development Kit). See SDK
Android Virtual Device. See AVD
animation and bitmaps, 269
Runnable Animation Demo, 134-140
Bitmap knight [ ], 135
drawBitmap() method, 135
frames, 135
InputStream object, 135
for loops, 135
Animation class/animation systems, 281
classes
AlphaAnimation, 287
constructors, 287
Animation, 281
CircularMovement Animation, 292
FenceBehavior, 326-327, 362, 388-395
ThrobAnimation, 291-292, 324-325
WarpBehavior, 325-326, 363-364
methods, 282
destroying/removing sprites from groups, 358-359
Animation Demo
frames
arranging, 270
drawing, from strip images, 270-271
sprite sheets
for asteroid animation, 273-274
Animation System Demo, 293-297
Apple products. See also iOS/Apple; iPad; iPhone; iPod; iTunes
Apple II, 7
Apple Macintosh, 7
Arkanoid, 386
assets
converting from one format to another, 115-116
error handling, 119
InputStream object, 118
istream.close() method, 119
linking, 121
atan() and atan2() methods, Math class, 353
Atari devices
Breakout, 386
history, 7
Audacity audio editor, 214-215
formats supported, 217
audio files, with MediaPlayer, 213
adding to .redraw folder, 214-215
Android NDK support, 8
exporting, 217
formats
converting from one to another, 214-216
exporting, 215
performance issues, 215
initializing, 214
playing, 217
R (resource identifiers), 215
audio files, with SoundPool
asset file extensions, 218
initializing, 218
playing, 219
multiple sounds, 218
R (resource identifiers), 219
AudioManager.STREAM_MUSIC parameter, 218
autorotation on screens, 159-160
AVD (Android Virtual Device) emulator
limitations, 64
multi-touch input
receiving basic data, 149
receiving/storing values, 150-155
options
CPU/ABI field, 32
RAM size, 64
SD card field, 33
Skin, 106
single-touch input, 144
axis directions
accelerometer sensor, 161, 164
linear acceleration sensor, 169
background scrolling, seamless texture, 371-374
Basic Graphics Demo, 95-98, 129
beginDrawing() method, Engine class, 262, 365
Bitmap class, 111
alpha channels for transparencies, 121-124
android.graphics.Bitmap namespace, 112
assets
error handling, 119
InputStream object, 118
istream.close() method, 119
linking, 121
Bitmap Loading Demo, 120, 125-126, 129-130
Config.ARGB_8888 parameter, 112, 119
file formats, 115
front buffer, 111
methods
BitmapFactory.decodeStream(), 118-119
drawBitmap(), 120
Texture class, 246
BitmapFactory.decodeStream() method, 118-119
Bitmap knight [ ], 135
Bitmap Loading Demo, 120, 125-126, 129-130
bitmaps and animation, 269
Runnable Animation Demo, 134-140
Bitmap knight [ ], 135
drawBitmap() method, 135
frames, 135
InputStream object, 135
for loops, 135
BMP file format, 115
bounding circles (radial) collision detection, 335-336
bounding rectangles (box) collision detection, 333-336
Box2D physics library, 233
box (bounding rectangles) collision detection, 333-336
Breakout, 386
Buffered Graphics Demo, 113-115
buffers, front and back, 111, 113-115
C++ and Android NDK
libraries, 8
supplementing Android SDK, 8
support
for Open GL ES 2.0, 8
for Open SL ES 2.0, 8
Basic Graphics Demo, 95-98, 129
Create Canvas Demo, source code, 83-85, 90
drawing
bitmaps, 120
canvas, 112
without onDraw() method, 132-133
methods
beginDrawing(), 262
drawBitmap(), 120
drawColor(), 89
drawLines(), 93
drawTriangle(), 95
getHolder(), 132
invalidate(), 130
Paint.setColor(), 95, 99, 101-102
Paint.setStyle(), 95
Paint.setTextSize(), 99, 101-102
unlockCanvasAndPost(), 132-133, 262
portrait and landscape mode output, 99
Style.FILL, 95
Style.STROKE, 95
SurfaceHolder variable, 132-133
SurfaceView class, 132
View class, 132
Cartesian coordinate systems, 301-302
CircularMovementAnimation class, 292
C# language
similar to Java, 78
XNA Game Studio, 78
.class extension, 8
collisioncheck() method, Engine class, 341-342, 368
collision detection techniques
collision() method, Engine class, 337, 347, 366, 393
Commodore 64, history, 7
Config.ARGB_8888 parameter, 112, 119
Conley, Ron, 258
transforming coordinates, 300, 303-305
cos() method, Math class, 350
createBitmap() method, 112
Create Canvas Demo
output, 85
running on devices, 90
Cupcake code name, 10
Dalvik Debug Monitor, 70
DDMS Perspective, Eclipse IDE, 70
densities for screens
AVD for each device tested, 107
AVD Skin option, 106
dark over light text display, 107
density-independent pixel (dip), 104
DisplayMetrics class, 106
general resolutions/densities, 106
general sizes/resolutions, 105
Screen Resolution Demo, 107-109
digital media industry, 9
DirectX SDK, 20
Documents app, 10
Donut code name, 10
double buffering, 111
limitations, 308
drawBox() method, Canvas class, 93-94
drawCircle() method, Canvas class, 87-89, 93
drawColor() method
Canvas class, 89
Engine class, 365
draw(delta) method, Engine class, 228
drawing
bitmaps, 120
canvas, 112
without onDraw() method, 132-133
drawLines() method, 93
draw() method
drawSheetFrame() method, Sprite or Texture classes, 273
drawStripFrame() method, Sprite class, 271
drawText() method, 99, 101-102
portrait and landscape mode output, 99
drawTriangle() method, 95
DrawView class
game engine core, 227
game engine rendering, 228
Earth app, 10
Eclair code name, 10
Amazon Kindle Fire, 69
.APK files (Android Packages), 233
Classic version, 25
DDMS Perspective, 70
downloading, 25
versions available, 25
Helios Service Release, 16, 25
installing
with JDK, 16
for Java Developers version, 25
versus NetBeans, 9
official IDE, 25
Package Explorer, Assets folder, 116-118, 271
preferred for Android development, 16
programming games, 7
projects
Android project wizard, 230
Android “wizard” dialog, 80
Application Info dialog, 231
copying/pasting, 269
Java complier requirements, 140
Javadoc for self-documented code, 103-104
new projects, 230
new project target, 69-70, 231
references, 263
versus NetBeans IDE, 80
and SDK, 40
build target, 45
NBAndroid plug-in, configuring, 49
endDrawing() method, Engine class, 262, 365
Engine class
conditional test with alive property, 364-365
methods
collision(), 337, 347, 366, 393
collisioncheck(), 341-342, 368
drawColor(), 365
draw(delta), 228
getGroup(), 368
load(), 392
removeFromGroup(), 324
toString(), 368
update(), 393
update(delta), 228
LinkedList object, 321
adding properties, 322
initializing, 322
Feldman, Ari, 270
FenceBehavior class, 326-327, 362, 388-395
FLAC audio format, 217
Float2 or Float3 classes, 182-183
Float3 p_data variable, 193
for loops, 135
frames, 135
front buffers, 111
Froya code name, 10
game developers
compatibility warning, 6
porting to other platforms, 6
components, 227
engine core component, 227
Engine Test Demo Project
Game Engine Library project, 229-233, 288
android.engine.VectorMath class, 229
.APK file (Android Package), 233
DotProduct() method, 229
VectorMath class, 229
main thread component, 228
rendering component, 228
Unity, 226
game examples
Ball and Paddle, 385
automated ball movement, 386-388
automated paddle restriction, 388-390
Shoot-’Em-Up
getBitmap() method, Texture class, 246
getBounds() method, Sprite class, 342-343, 368
getBoundsScaled() method, Sprite class, 342-343
getCanvas() method, Sprite class, 262
getCollidable() method, Sprite class, 342-343
getCollided() method, Sprite class, 342-343
getGroup() method, Engine class, 368
getHolder() method, Canvas class, 132, 228
getIdentifier() method, Sprite class, 342-343
getName() method, Sprite class, 342-343
getOffender() method, Sprite class, 342-343
getSensorList() method, SensorManager class, 163
GIF file format, 115
GIMP graphic editor
alpha channels for transparencies, 121-124
converting assets from one format to another, 115-116
Gingerbread code name, 10
Google Drive app, 10
GPS location service versus sensors, 158
Graphics Demo project code, 86-87
drawColor() method, 89
graphics shapes, 90
package and import statements, 88
Paint class, 89
View class, 90
gravity sensors, 194
algorithm, 181
constants/values, 182
converting 3D to 2D coordinate, 183
Float2 or Float3 classes, 182-183
initializing, 181
onSensorChanged() method, 182
reading, 182
GSM 6.10 WAV (mobile) audio format, 217
gyroscope sensors, 194-195, 210
H15 Game Engine Library, 248
H16 Game Engine Library, 263
H16 Sprite Demo, 262
H17 Game Engine Library, 270
H19 Game Engine Library, 322
H23 Game Engine Library, 367, 375
H23 Velocity Scrolling Demo, 375
hand-held video game systems, 7
Helios Service Release, Eclipse IDE, 16, 25
IBM PCs, 7
Ice Cream Sandwich code name, 3-4, 10, 69
Amazon Kindle Fire, 69
identity matrix, 300
IDEs (integrated development environments), 16
init() method, 252
int change constructor, 287
int maxAlpha constructor, 287
int() method, 390
int minAlpha constructor, 287
invalidate() method, 130
iOS/Apple, Android as derivative of, 9
iOS/Apple versus Android and Windows Phone
hardware control, 3
adult toy, 7
versus Android, 9
development of, 9
adult toy, 7
versus Android 4, 4
development from iPod, 9
and Palm Pilot, 9
Plants vs. Zombies, 7
and Pocket PC, 9
release in 2007, 9
Unity game engine support, 226
versus Android, 9
iPhone development, 9
istream.close() method, 119
iTunes, development of, 9
JAR (Java Archive) utility, 269
Java
compiler requirements, 140
importance of experience, 8
JAR (Java Archive) utility, 269
modulus operator, 273
programming games, 7
similar to C# language, 78
Java Development Kit. See JDK
Javadoc for self-documented code, 103-104
.java extension, 8
Java Runtime Environment. See JRE
JDK (Java Development Kit), 8
Enterprise Edition, 16
installing, with Eclipse, 16
Java Standard Edition 7, 16
NetBeans
downloading, 17
installing, default locations, 19-20
plug-in for, 16
versions available, 17
Jelly Bean code name, 3, 10, 69
JPEG file format, 115
JRE (Java Runtime Environment), 8, 16
Katz, Phil, 233
Kindle Fire, Amazon
Android 2.2 Eclair, 69
Android 4.0 Ice Cream Sandwich, 69
sensors reported, 164
landscape orientation, 99, 159-160
licensing
lifetimes for programs (activities), 79
foreground, 79
visible, 79
light detector sensor, 195
Linear Acceleration Demo, 171-177
linear acceleration sensors, 193, 210
versus accelerometer, 169
methods
onPause(), 171
onResume(), 171
registerListener(), 171
unregisterListener(), 171
reading sensor, 171
velocity, 170
X and Y values, 169
lines, 93
adding properties, 322
initializing, 322
Linux
and Android development, 8, 66
basis for Android 4, 3
versus iOS and Windows Phone OS, licensing, 4
load() method, Engine class, 252, 392
lockCanvas() method, 132-133, 262
Log statement, 252
M4A (AAC) (FFmpeg) audio format, 217
Mac OS X
and Android development, 66
4.8 or later, 8
Plants vs. Zombies, 7
magnetic field (compass), 157-158
main() function, MAC OS X, versus Activity class, 77
Maps app, 10
market share
Math class methods
atan() and atan2()s, 353
cos(), 350
sin(), 350
matrix rotation
radians versus degrees, 305
rotation values, 305
X, Y, and Z components, 306
transformations with Sprite class, 307
combined with scaling and translation, 307-308
matrix scaling
scale values, 307
transformations with Sprite class, 307
combined with rotation and translation, 307-308
Matrix Transforms Demo
getting screen resolution, 309
rendering frames to scratch bitmaps, 308
Sprite class
transforming rotation, scaling, and translation, 307-308
matrix translation
identity matrix, 300
transformations with Sprite class, 307
combined with rotation and scaling, 307-308
transforming coordinates, 300, 303-305
zero matrix, 300
MediaPlayer audio files, 213
adding to .redraw folder, 214-215
Android NDK support, 8
exporting, 217
formats
converting from one to another, 214-216
exporting, 215
performance issues, 215
initializing, 214
playing, 217
R (resource identifiers), 215
MediaPlayer class
audio files, 213
initializing, 214
method comments, Javadoc, 103-104
Microsoft, XNA Game Studio, similar to Android, 78
MIDI file format, 214
modulus operator, Java, 273
MotionEvent parameter, 151
multi-touch, 151
getX() and getY() methods, 149
single- and multi-touch, get.PointerCount() method, 149
MOVE event, 144
MP2 audio format, 217
MS-DOS OS, 7
multi-touch input
methods
getX() and getY(), 149
onTouch(), 151
Point(), 151
MotionEvent parameter, 151
receiving basic data, 149
receiving/storing values, 150-155
Napster, 9
configuring, 49
New Android Application dialog, 80-81
versus Eclipse, 9
“Hello, Android!” program
building, 62
editing, 60
running, 62
and JDK
downloading, 17
installing, default locations, 19-20
installing plug-in, 16
plug-in for, 16
configuring, 49
Output window, 53
package naming, 51
Target Platform table, 51
programming games, 7
Project Browser, Source Packages, 82
New Android Application dialog, 80-82
versus Eclipse IDE, 80
and SDK
New Android Project Wizard, 43-44
Nintendo Entertainment System (NES), 7
DSi and Plants vs. Zombies, 7
Nintendo DS family, 7
Wii, 7
OGG file format, 214
Ogg Vorbis audio format, 217
onAccuracyChanged() method, 158-159
onCreate() method
game engine startup, 227
engine test, 252
SensorManager class, 158-159, 163
Tricorder class, 197
onDestroy() method, Activity class, 78-79
onDraw() method
Canvas class, 88-89, 111, 131-132
Context parameter, 131
game engine rendering, 228
invalidate() method, 130
onPause() method
linear acceleration, 171
Tricorder class, 197
onResume() method
linear acceleration, 171
Tricorder class, 197
onSensorChanged() method, 158-159
gravity sensors, 182
linear acceleration sensors, 171
pressure sensors, 189
onStart() method, Activity class, 78-79, 85
onStop() method, Activity class, 78-79
OnTouchListener
game engine core, 227
onTouch() method, 151
multi-touch, 151
Open GL ES 2.0 and Open SL ES 2.0, 8
orientation
gravity sensors, 182
landscape and portrait, 159-160
drawText() method, 99
OS X (Apple), 7
Package Explorer, 43
bitmap assets, 271
File Operation confirmation dialog, 116-117
Paint class, 89
Paint.NET graphic editor, 115-116
Paint.setColor() method, 95, 99-102
Paint.setStyle() method, 95
Paint.setTextSize() method, 99-102
Palm Pilot, and iPhone, 9
pause() method, Thread class, 131
PCs, history of use, 7
Picasa app, 10
pixel buffer access, Android NDK, 8
Plants vs. Zombies, 7
PNG file format, 115
Pocket PC, and iPhone, 9
podcasts, 9
Point() points, 151
PopCap Games, Plants vs. Zombies, 7
portrait orientation
Canvas class output, 99
disabling accelerometer changes, 159-160
postRotate() method, Matrix class, 305
postScale() method, Matrix class, 307
postTranslate() method, Matrix class, 304-305
Preferences, Eclipse IDE, Android build target, 45
preRotate() method, Matrix class, 305
preScale() method, Matrix class, 307
pressure sensors, 210
preTranslate() method, Matrix class, 304-305
Prokein, Reiner, free game art, 134
castle images, 116
character sprites
dragon, 257
knight, 257
trees, 255
proximity sensors, 177-178, 193-194, 210
infrared detector, 177
uses, 178
radial (bounding circles) collision detection, 335-336
ReboundBehavior class, 387-388
registerListener() method, linear acceleration, 171
removeFromGroup() method, Engine class, 324
resolutions for screens
AVD for each device tested, 107
AVD Skin option, 106
bitmaps, 112
dark over light text display, 107
density-independent pixel (dip), 104
DisplayMetrics class, 106
general screen
resolutions/densities, 106
sizes/resolutions, 105
Screen Resolution Demo, 107-109
resume() method, Thread class, 131
RTS (real-time strategy) games, 353
run() method
thread updating, 322
Runnable Animation Demo, 134-140
Runnable class, 130
game engine core, 227
Samsung Galaxy Nexus, 11
Android hardware, 12
screen densities and resolutions
AVD for each device tested, 107
AVD Skin option, 106
dark over light text display, 107
density-independent pixel (dip), 104
DisplayMetrics class, 106
general resolutions/densities, 106
general sizes/resolutions, 105
Screen Resolution Demo, 107-109
Screen Resolution Demo, 107-109
SDK (Software Development Kit), 7-8
Android NDK supplement, 8
Canvas class, 90
Eclipse IDE, 40
build target, 45
NBAndroid plug-in, configuring, 49
history of Android 4, 9
default folder, 22
JDK required, 21
NetBeans IDE
operating systems supported, 8
SDK Manager
additional versions, 24
downloading/installing all packages, 25-26
enabling, 23
Extras, Android Support, 24
verification dialog, 25
Sega Master System (SMS), 7
testing, 104
SensorEvent class, 162, 165, 189
SensorEvent.values array, 191
SensorEventListener class, 162, 165
implements statement, 158, 171
methods
onSensorChanged(), 158-159, 171, 189
SensorManager class, 158, 162, 170
gravity constants/values, 182
methods
getSensorList(), 163
sensors
accelerometer sensor, 157-158, 193, 209
accelMotion variable, 162
versus linear acceleration, 169
android.hardware classes, 162
BaseSensor class, 192
GPS location service not sensor, 158
gravity sensor, 194
algorithm, 181
constants/values, 182
converting 3D to 2D coordinate, 183
Float2 or Float3 classes, 182-183
initializing, 181
onSensorChanged() method, 182
reading, 182
gyroscope sensor, 194-195, 210
light detector sensor, 195
Linear Acceleration Demo, 171-177
linear acceleration sensor, 193, 210
versus accelerometer, 169
onPause() method, 171
onResume() method, 171
reading sensor, 171
registerListener() method, 171
unregisterListener() method, 171
velocity, 170
X and Y values, 169
magnetic field (compass), 157-158
atmospheric pressure levels, 189
initializing, 189
reading, 189
proximity sensor, 177-178, 193-194, 210
infrared detector, 177
uses, 178
Sensors class, 205
setBounds() method, Matrix class, 342-343
setCollidable() method, Matrix class, 342-343
setCollided() method, Matrix class, 342-343
setIdentifier() method, Matrix class, 342-343
setName() method, Matrix class, 342-343
setOffender() method, Matrix class, 342-343
setRotate() method, Matrix class, 305, 308
setScale() method, Matrix class, 306, 308
setTitle() method, Activity class, 78
setTranslate() method, Matrix class, 304, 308
single-touch input
MotionEvent parameter, 144-147
get.PointerCount() method, 149
MOVE event, 144
Single Touch Input Demo, 144-148
testing on emulator, 144
UP event, 144
Single Touch Input Demo, 144-148
sin() method, Math class, 350
Sony products, Walkman, 9
Sony PSP family, 7
SoundPool audio files
asset file extensions, 218
initializing, 218
playing, 219
multiple sounds, 218
R (resource identifiers), 219
SoundPool class
initializing, 218
sound effects, 218
blueprinting versus evolving, 259
methods
addAnimation(), 287
animate(), 283
draw(), 262
drawSheetFrame(), 273
getCanvas(), 262
properties, adding, 342
sprites
creating with animation, 287-288
creating without animation, 283
drawing requirements, 262
pointing in direction of movement, 352-354
transforming rotation, scaling, and translation, 307-308
subpixel translation support, 355-358
Texture class, 261
Sprite Demo
advantages, 270
animation frames
creating from sprite sheets, 272-273
tiling to store as sprite sheets, 270
for asteroid animation, 273-274
Sprite Transforms Demo, 316-319
stopwatch() method, Timer class, 243
strokes and fills, changing styles, 95
Style.FILL, 95
Style.STROKE, 95
SurfaceHolder class
beginDrawing() method, 262
game engine rendering, 228
lockCanvas() method, 262
SurfaceView class
beginDrawing() method, 262
System.currentTimeMillis() method, Timer class, 243
Taito’s Arkanoid, 386
Target Platform table, NetBeans IDE, 51
Teach Yourself Windows Phone 7 Game Programming in 24 Hours, 6
texture atlas. See sprite sheets
Texture class
Bitmap object, 246
drawSheetFrame() method, 273
getBitmap() method, 246
Sprite class, 261
threaded game loops
Context parameter, 131
methods
invalidate(), 130
Runnable class, 130
SurfaceView class, 131
Thread object, 131
pause() method, 131
resume() method, 131
Thread object, 131
pause() method, 131
resume() method, 131
Thread.sleep() method, Timer class, 243
ThrobAnimation class, 291-292, 324-325
stopwatch(), 243
System.currentTimeMillis(), 243
Thread.sleep(), 243
toDegrees() method, Math class, 305, 350
toRadians() method, Math class, 305, 350
Toshiba Thrive 7″ tablet, 69
sensors reported, 163
toString() method, Engine class, 368
touch input
multi-touch input
MotionEvent parameter, 151
MotionEvent parameter, getX() and getY() methods, 149
onTouch() method, 151
Point() points, 151
receiving basic data, 149
receiving/storing values, 150-155
single-touch input
MotionEvent parameter, 144-147
get.PointerCount() method, 149
MOVE event, 144
Single Touch Input Demo, 144-148
testing on emulator, 144
UP event, 144
transparencies, alpha channels, 121-124
triangles, 95
Tricorder Demo (sensors)
classes
Accelerometer, 209
CompassSensor, 211
GyroscopeSensor, 210
LinearAcceleration, 210
PressureSensor, 210
ProximitySensor, 210
Sensors, 205
events, unused accuracy, 207
panels, drawing, 201
TYPE sensors
ACCELEROMETER, 157
AMBIENT_TEMPERATURE, 157
GYROSCOPE, 157
LIGHT, 157
MAGNETIC_FIELD, 157
PRESSURE, 157
RELATIVE_HUMIDITY, 158
ROTATION_VECTOR, 158
unlockCanvasAndPost() method, 132-133, 262
unregisterListener() method, linear acceleration, 171
update(delta) method, Engine class, 228
update() method, Engine class, 393
UP event, 144
USB device drivers versus ABD (Android Debug Bridge), 65-68
vector shapes, 93
lines, 93
strokes and fills, changing styles, 95
triangles, 95
velocity
angular velocity, 351
calculating from specific direction, 349
radians versus degrees, 350
trigonometry functions, 350
linear acceleration sensors, 170
pointing sprites to direction of movement, 352-353
calculating angles to targets, 353-354
sine and cosine relationships, 350-351
WAV audio format, 214
WAV (Microsoft) signed 16-bit PCM audio format, 217
WEBP file format, 115
Wikipedia, 354
Winamp, 9
Windows Media Player, 9
Windows Mobile OS. See Windows Phone
adult toy, 7
licensing, 4
versus Google and Apple
Plants vs. Zombies, 7
Windows versions, supported by Android SDK
Vista, 8
Windows 7, 8
XP, 8
WinMain() function, Windows versus Activity class, 77
WMA (version 2) (FFmpeg) audio format, 217
WSVGA screen display, 107
WXGA800 screen display, 107
Xbox 360, Plants vs. Zombies, 7
XNA Game Studio, Microsoft, 78
zero matrix, 300
ZIP compression algorithm, 233
ZIP library, 269
18.221.163.13