HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Build the Next Great iOS Game with Cocos2D!
Cocos2D is the powerhouse framework behind some of the most popular games in the App Store. If you’ve played Tiny Wings, Angry Birds, Mega Jump, Trainyard, or even Super Turbo Action Pig, then you’ve played a game that uses Cocos2D or Box2D physics. The beauty of Cocos2D is its simplicity. It’s easy to become overwhelmed when you start developing an iOS game, especially if you look at things like OpenGL ES, OpenAL, and other lower level APIs. Writing a game for the iPhone and iPad does not have to be that difficult, and Cocos2D makes game development fun and easy.
Learning Cocos2D walks you through the process of building Space Viking (which is free on the App Store), a 2D scrolling game that leverages Cocos2D, Box2D, and Chipmunk. As you build Space Viking, you’ll learn everything you need to know about Cocos2D so you can create the next killer iOS game.
Download the free version of Space Viking from the App Store today! Help Ole find his way home while learning how to build the game.
As you build Space Viking, you’ll learn how to
Learning Cocos2D: Simple Collision Detection and Enemy AI
Download the sample pages (includes Chapter 3 and Index)
Preface xxi
Acknowledgments xxxiii
About the Authors xxxvii
Part I: Getting Started with Cocos2D 1
Chapter 1: Hello, Cocos2D 3
Downloading and Installing Cocos2D 4
Creating Your First Cocos2D HelloWorld 6
For the More Curious: Understanding the Cocos2D HelloWorld 11
Getting CCHelloWorld on Your iPhone or iPad 20
Summary 22
Challenges 22
Chapter 2: Hello, Space Viking 23
Creating the SpaceViking Project 23
Creating the Space Viking Classes 24
Creating the Background Layer 26
The Gameplay Layer: Adding Ole the Viking to the Game 29
The GameScene Class: Connecting the Layers in a Scene 31
Commanding the Cocos2D Director 34
Adding Movement 35
Texture Atlases 44
For the More Curious: Testing Out CCSpriteBatchNode 52
Fixing Slow Performance on iPhone 3G and Older Devices 53
Summary 54
Challenges 54
Chapter 3: Introduction to Cocos2D Animations and Actions 57
Animations in Cocos2D 57
Space Viking Design Basics 62
Actions and Animation Basics in Cocos2D 66
Using Property List Files to Store Animation Data 67
Organization, Constants, and Common Protocols 69
The GameObject and GameCharacter Classes 74
Summary 82
Challenges 82
Chapter 4: Simple Collision Detection and the First Enemy 83
Creating the Radar Dish and Viking Classes 83
Creating the Viking Class 90
Final Steps 105
Summary 112
Challenges 113
Part II: More Enemies and More Fun 115
Chapter 5: More Actions, Effects, and Cocos2D Scheduler 117
Power-Ups 118
Enemy Robot 125
Adding the PhaserBullet 137
GameplayLayer and Viking Updates 141
For the More Curious: Effects in Cocos2D 145
Summary 149
Exercises and Challenges 149
Chapter 6: Text, Fonts, and the Written Word 151
CCLabelTTF 151
Understanding Anchor Points and Alignment 153
CCLabelBMFont 155
Using Glyph Designer 156
Using the Hiero Font Builder Tool 156
For the More Curious: Live Debugging 160
Summary 165
Challenges 165
Part III: From Level to Game 167
Chapter 7: Main Menu, Level Completed, and Credits Scenes 169
Scenes in Cocos2D 169
Introducing the GameManager 170
Menus in Cocos2D 179
Scene Organization and Images 180
Creating the Main Menu 182
Additional Menus and GameplayLayer 190
For the More Curious: The IntroLayer and LevelComplete Classes 193
Summary 195
Challenges 195
Chapter 8: Pump Up the Volume! 197
Introducing CocosDenshion 197
Importing and Setting Up the Audio Filenames 198
Synchronous versus Asynchronous Loading of Audio 201
Adding the soundEngine to GameObjects 215
Adding Sounds to EnemyRobot 219
Adding Sound Effects to Ole the Viking 222
Adding Music to the Menu Screen 228
For the More Curious: If You Need More Audio Control 229
Summary 230
Challenges 230
Chapter 9: When the World Gets Bigger: Adding Scrolling 231
Adding the Logic for a Larger World 232
Creating a Larger World 235
Scrolling with Parallax Layers 250
Scrolling to Infinity 252
Tile Maps 265
Summary 276
Challenges 276
Part IV: Physics Engines 277
Chapter 10: Basic Game Physics: Adding Realism with Box2D 279
Getting Started 279
Hello, Box2D! 289
Basic Box2D Interaction and Decoration 302
Making a Box2D Puzzle Game 320
Summary 332
Challenges 332
Chapter 11: Intermediate Game Physics: Modeling, Racing, and Leaping 333
Getting Started 334
Creating a Cart with Box2D 346
Making the Cart Move and Jump 356
Summary 374
Challenges 374
Chapter 12: Advanced Game Physics: Even Better than the Real Thing 375
Joints and Ragdolls: Bringing Ole Back into Action 376
Adding Obstacles and Bridges 386
The Boss Fight! 396
Summary 417
Challenges 417
Chapter 13: The Chipmunk Physics Engine (No Alvin Required) 419
What Is Chipmunk? 420
Getting Started with Chipmunk 421
Adding Sprites and Making Them Move 438
Chipmunk and Constraints 455
The Great Escape! 467
Summary 477
Challenges 477
Part V: Particle Systems, Game Center, and Performance 479
Chapter 14: Particle Systems: Creating Fire, Snow, Ice, and More 481
Built-In Particle Systems 482
Getting Started with Particle Designer 485
Creating and Adding a Particle System to Space Viking 489
Summary 494
Challenges 494
Chapter 15: Achievements and Leaderboards with Game Center 495
What Is Game Center? 495
Enabling Game Center for Your App 497
Game Center Authentication 506
Setting Up Achievements 515
Implementing Achievements 518
Setting Up and Implementing Leaderboards 536
Summary 543
Challenges 543
Chapter 16: Performance Optimizations 545
CCSprite versus CCSpriteBatchNode 545
Reusing CCSprites 552
Profiling within Cocos2D 554
Using Instruments to Find Performance Bottlenecks 557
Summary 563
Challenges 563
Chapter 17: Conclusion 565
Where to Go from Here 567
Android and Beyond 567
Final Thoughts 568
Appendix: Principal Classes of Cocos2D 569
Index 571