This book shows you the techniques that make games tick, and gives you dozens of working Java code examples. In addition, each example is backed up by detailed explanations that fully deconstruct the code so that you can see how everything works. You can start from these working examples and customize them, use the parts to create entirely new games, or simply use them as a source of ideas for writing your own custom game code.
While this book does, where necessary, discuss a little theory, the real heart of the book is intended more like a hands-on auto shop class than a physics lecture. After all, understanding how a water pump works is a lot easier if you can hold one in your hand and see where it fits on a real car engine. Likewise, understanding game code is a lot easier if you can examine each part of the code in det
Table of Contents
Introduction 1
About This Book 1
Who You Are 1
About the Java Code in This Book 2
How This Book Is Organized 2
Part I: Steppin' Out 2
Part II: Up to Speed 2
Part III: Seven League Boots 3
Part IV: The Part of Tens 3
Appendix: About the CD-ROM 3
CD Chapters: Fundamentals 3
Icons Used in This Book 4
Part l: Steppin' Out 5
Chapter 1: Follow the Bouncing Ball 7
Ticking Off the Time 7
Making Things Move 9
Floating the point 9
Encapsulating the essence of a ball 9
Setting Bounds 10
Moving out of bounds 11
Bouncing back 11
Coding movement and bounce 11
Settin' things in motion 13
Drawing the Details 14
Drawing offscreen 15
Overriding the flicker 15
Drawing the background and the ball 16
Putting the action on the screen 16
Chapter 2: Ponglet 17
Setting State 17
Breaking down the task 18
Serving the ball 20
Up Java Creek without a Paddle 22
Returning the serve 23
Changing state 24
Creating a computer opponent 24
Rolling down the gutter 25
He shoots, he scores! 26
We have a winna! 26
Java Game Programming For Dummies
Tracking User Input 27
Entering the control zone 27
Tracking the mouse 27
Displaying the State 28
Keeping score 29
Game over? 29
Chapter 3: Hole In One 31
Modeling the Deceleration of a Ball 32
Using vectors 32
Creating a vector class 35
Starting from a Circle 36
Creating the Circ1e class 37
Building a Ba11
by extending Circ1e 37
Decelerating the ball 38
Moving the ball 39
Staying in bounds 39
Putting the ball 40
Selecting the ball 40
Executing the putt 41
Waiting for the ball to go in 41
Drawing the ball 41
Digging a Hole 42
Gravitating toward the center 43
Vectoring in 44
Curving around the hole 44
Coding the curve 46
Pushing to the center 46
Sinking the putt 47
Spinning in the hole 47
Completing the putting interface 48
Drawing the green 49
Chapter 4: JavaPool 51
Calculating Ball-to-Ball Collisions 52
Passing in the night 52
Reducing the distance 52
Calculating position over time 53
Calculating the distance to a collision 54
Solving for time 56
Two solutions? 56
Rearrange the equation 57
The complete set of equations (all you really need) 59
Timing and order 60
Checking the combinations 61
Bouncing Off the Bumpers 61
Coding the Collisions 62
Table of Contents
Conserving Momentum 63
Revisiting vectors 64
What if both balls are moving? 66
The dot product 66
Putting All the Pieces Together 68
Part ll: Up to Speed 71
Chapter 5: Sliding Blocks Brain Teaser 73
Using Images in Games 74
Digital Stamp Pads 75
Drawing while downloading 77
Loading images with Medi aTracker 77
MediaTracker addImage() 78
MediaTracker waitForAll() 78
Loading multiple images 79
Laying Out the Game Board 79
Reading the width and height of an Image 81
Crafting the Puzzle 82
Making puzzle pieces that act like real puzzle pieces 82
Putting the pieces together 83
Mousing the Pieces Around 85
Selecting a puzzle piece 85
Moving the pieces 86
Slide( ) ing around 87
Checking for pieces that block the slide path with
Cleaning up after a move 89
Drawing the Board 90
Declaring the Puzzle Solved and Congratulating the Winner 91
Chapter 6: Blackjack 93
Understanding the Blackjack Game 93
Playing Blackjack 94
Designing the game 95
Creating a Reusable Deck of Cards 96
Shuffling and dealing the deck 97
Building the Card class 99
Converting cards to strings 102
Extracting card graphics from a composite image 103
Customizing the deck 105
Java Game Programming for Dummies
Creating a User Interface with Components 106
Using buttons 106
Creating and placing buttons 107
Having your game respond to buttons 108
Reading and displaying text 108
Displaying status and scores with labels 109
Getting a few words from the user 109
Customizing your game's appearance with I mageButton 112
Displaying a hand of cards 114
Arranging the User Interface 117
Positioning components with a LayoutManager 118
FlowLayout 119
BorderLayout 119
GridLayout 120
Your own LayoutManager 120
Dividing the screen with panels 123
Laying out a game of Blackjack 124
The top-level applet 124
The HTML that loads the applet 130
The players 131
The players' hands 134
Chapter 7: 2-D Maze 137
Creating the Maze Class 138
The Bl ockMaze subclass 139
The WaI 1 Maze subclass 140
Generating a Maze 142
Selecting an algorithm 142
Adding to the Maze class 144
Generating a wall maze 145
Generating a block maze 149
Solving Mazes 156
Representing the solution 156
Keeping your left hand on the wall 157
Using breadth-first searching to find the shortest path 159
Displaying a 2-D Maze 163
Repainting the maze in a thread-friendly manner 165
Calculating where the pixels go 166
Knowing that block mazes are simple is half the battle 167
Displaying a wall maze 167
Displaying a solution 169
Putting the maze on the screen 170
Using a thread to animate, generate, and solve a maze 170
Reviewing parameters in the Maze App I et class 171
Table of Contents
Chapter 8: 2-D Sprite Maze 173
Gentleman, Start Your Sprite Engines! 174
I mplementing a sprite 174
Putting sprites in their place 176
Moving sprites around the play field 178
Resolving collisions 179
Displaying sprites 180
Animating sprites 181
A Sprite Framework 183
The Spri teEngi ne class 184
Keeping track of all the sprites 188
Drawing sprites layer by layer 189
Moving sprites and detecting collisions 190
I mproving the accuracy of collision detection 190
Selecting a movement frame rate 192
The BackgroundSpri teEngi ne class 194
Sprite events and handling them 194
Sprite control 195
Computer Adversaries 197
Using random intelligence to make adversaries smarter 197
Using a breadth-first search for adversary navigation 198
Prioritizing adversary goals 198
The Sprite Maze Game 200
I mplementing a cast of sprites 201
Running into a wall 202
Animating maze runners 202
Animating an adversary who shoots to kill 204
Whizzing bullets 205
Initializing the game 210
Overriding drawSquare( ) 210
Giving the player control 211
Keeping things moving 211
Chasing the player 212
Finalizing the Sprite Maze applet 212
Chapter 9: Modeling the Real World 217
Making Things Happen at the Right Time with a Timeline 217
A heap of events 218
Adding events to the timeline 219
Processing events in order 221
Changing the future: Removing events before they happen 222
Removing events 222
Searching the timeline 222
Playing Sounds 223
Java Game Programming For Dummies
Matching Animations to Game Events with Scripts 224
Interfacing the programmer and the artist 225
Writing a script 225
Reading scripts from text files 227
Looping an animation 228
Adding random behavior 228
Adding special effects and other goodies 230
Understanding the code 231
Organizing scripts by action 231
Filling a script with frames 233
SoundFrame 238
BranchFrame 239
Chapter 10: 3-D Polygon Maze 243
Moving into Three Dimensions 243
Calculating perspective 243
Calculating the height of a wall 247
Finding the x-axis intersection 247
Expanding the grid into 3 dimensions 247
Sizing up the screen 247
Drawing the Maze 248
The painter's algorithm 248
Draw from the outside in 248
Deeper is wider 249
Creating a Rat's-Eye View 250
Coding PolyMaze 253
Adding Shading, Light Effects, and a Reason to Solve the Maze 255
Updating MazeMap 257
Running a Random Maze 259
Extending from Bl ockMaze 259
Sizing the maze in your HTML 260
Chapter 11: Texture-Mapped 3-D Maze 263
Mapping Some Texture 263
Scaling Images 264
Tiling Textures 268
Texture Mapping a 3-D Maze 269
Introducing Mr Bresenham 270
Experimenting with Bresenham 271
Extending a TexVi ew class from Gri dVi ew 273
Loading textures 273
Overriding d rawSq ( ) 273
Alternating wall textures 274
Table of Contents
Drawing front walls 275
Calculating the front wall's texture offset 275
Creating the front wall image 276
Clipping to the view 276
Slicing a column of texture 277
Drawing side walls 278
Calculating the side wall's texture offset 279
Tracing the side-wall edges 280
Masking the side walls 280
Darkening the walls 280
Computing a darkened color table 280
Shading the walls 281
Shading the side walls 282
Assembling the Pieces 283
Chapter 12: Advanced Imaging 285
Drawing Partially Transparent Images 286
Creating new images with Memo ry I ma geSou rce 286
Coding an Al phaGradi ent 287
Blending the edges of images with alpha masking 289
Creating alpha information from a GIF image 289
Using Pi xel Grabber 290
Antialiasing in Java 293
Rendering to subpixels 293
Reading from offscreen images 294
Shrinking text 296
Drawing Direct 297
The ImageProducer interface 298
Coding an ImageProducer 298
Dancingthe ImageProducer tango 299
Demoing Di rectImage 301
Modifying GIF Images 304
Getting at the raw image data with the
ImageConsumer interface 304
Recoloring a GIF Image 307
Part I U: The Part o f Tens 309
Chapter 13: Ten Secrets for Making Fun Games 311
Knowing What Players Want 311
Understanding What Makes a Game Addictive 312
Start Easy and Then Increase Difficulty 312
Making It Easy to "Step In 313
Enhancing the Player's Suspension of Disbelief 313
Making the Player Feel Smart 314
What Did I Do Wrong? The Player Should Always Know 314
Java Game Programming For Dummies
Cheating Spoils the Fun 315
Your Friend, Mr Random Number 315
Playtesting 316
Chapter 14: Ten Ways to Say "Game Over' 317
Fading to Black 317
Rolling the Credits 318
Providing an Instant Replay 318
Scoring and Points: the Competitive Obsession 319
Marking Levels of Achievement 319
Ranking One Player against Another 320
Reusing Game Code to Make an Ending Animation 320
Offering a Practice Round 321
Losing Should Even Be Fun 321
Thanking Players for an Enjoyable Game 321
Chapter 15: Ten Ways to Optimize Your Java Code 323
Code Profiling: Finding Where the Time Goes 323
A Shifty Divide 324
Inline Methods with the Compiler 325
Do Once, Use Often 325
Faster Variables 326
A Faster Loop 327
Faster Methods 328
Reduce the Cost of Synchronizing 328
Beware of Large Array Initializers 329
The Fastest Way to Copy Arrays 330
Appendix: What's on the CD-ROM 331
System Requirements 331
Using the CD with Microsoft Windows 95 or NT 4 0 332
Using the CD with Mac OS 333
Getting to the Content 333
Installing Programs 334
What You'll Find 335
The Java Development Kit 335
Microsoft Internet Explorer 4 0 336
Adobe Acrobat Reader 336
CD Bonus Chapters 336
CD Chapter 1: An Applet a Day 336
CD Chapter 2: Using Threads 337
CD Chapter 3: Getting Savvy with Graphics 337
CD Chapter 4: Adding Color to Cool 337
CD Chapter 5: User Input 337
Applets and More Applets 337
Chinese Checkers for Java 339
Table of Contents
GoldWave 3 24 339
SoundForge XP 4 Od Demo 339
SoundApp 2 4 4 339
SoundI-lack 0 872 340
If You've Got Problems (Of the CD Kind) 340
Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Java Game Programming For Dummies - fileskachat.com, быстрое и бесплатное скачивание.
Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.Купить эту книгу
Скачать - Книгу - Java Game Programming For Dummies - depositfiles.com
Скачать - Книгу - Java Game Programming For Dummies - letitbit.net
Дата публикации:
Теги: книга по программированию :: Java :: Java Game Programming
Смотрите также учебники, книги и учебные материалы:
Следующие учебники и книги:
- STL для программистов на C++ - Аммерааль Л.
- Иллюстрированный самоучитель по Delphi 7 для начинающих
- Delphi FAQ
- Универсальный Dynamic HTML - Вильямсон Х.
Предыдущие статьи:
- Советы по Delphi
- Kylix Developer’s Guide - Charles Calvert, Marjorie Calvert, John Kaster, Bob Swart
- Mastering Delphi 7 - Marco Cantu
- Borland Delphi UseNet Articles - Peter Below