Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Cocos2d

hjue
October 19, 2012
68

Introduction to Cocos2d

hjue

October 19, 2012
Tweet

Transcript

  1. Thomas V. Frauenhofer Beret Applications LLC 360iDev Austin, November, 2010

    Introduction to Cocos2d: Learning from Examples Monday, November 8, 2010
  2. Who am I? • Software developer for 28+ years •

    IBM’er by day, mobile developer at night • 10 years in Palm OS mobile development • (May it rest in peace) Monday, November 8, 2010
  3. Chromatic Cosmos • Cocos2d-Based Tower defense game released last August

    • FREE on iTunes this week! http://beret.com Monday, November 8, 2010
  4. Overview • Motivation - Why Cocos2D? • Definition of simple

    project (BlockGame) • Building the project • We won’t finish, but you’ll get all the code Monday, November 8, 2010
  5. Why Cocos2D? • Simple 2D Gaming SDK • Built upon

    the OpenGL API’s • Rich Objective-C API • Used in thousands of apps • Very active developer community Monday, November 8, 2010
  6. Even more Why Cocos2D • Integrates with some very useful

    libraries • Physics (Chimpunk, Box2D) • Sound (CocosDension) • Game boards (cocoslive) • And others... Monday, November 8, 2010
  7. Things to Consider • Cocos2D is an open-source project •

    Read the licenses carefully • Cocos2D has changed A LOT over the past year • Support for newer iOS versions/features • Changes in names and abstractions used • Adopting a new version may be a significant amount of work Monday, November 8, 2010
  8. High-level Cocos2d • The Director (CCDirector) is the boss •

    Manages the window and the scenes • Manages the interactions with the underlying OpenGL environment • A game has one or more scenes (CCScene) • Think of a scene in the thematic sense Monday, November 8, 2010
  9. It all started with a (CC)Node... • CCNode is the

    base class of (almost) all Cocos2D classes • Many attributes are defined • Position • Size • z-order • etc... Monday, November 8, 2010
  10. • The origin is the lower left-hand corner of the

    screen • The position of an object is the center of the object image source: http://www.anima-entertainment.de A quick note on coordinates Monday, November 8, 2010
  11. Layers • A layer (CCLayer) is where a user interacts

    with Cocos2d objects • A layer handles touch and accelerometer events • A layer contains other layers and sprites Monday, November 8, 2010
  12. Sprites • A sprite (CCSprite) is an active object in

    your game • 2 dimensional object • Has an image (not generated) • Can be animated, touched, moved, etc. Monday, November 8, 2010
  13. Animated Sprites • Use of Batch Sprites/Sprite Sheets/Atlas Sprites (versus

    individual image files) • Depending on your version/history with Cocos2d • Uses OpenGL Texture Atlas to provide higher animation performance Monday, November 8, 2010
  14. Actions and Animation • You animate a sprite using the

    CCAnimation class • You make a sprite move using derivatives of the CCAction class • You can specify sequences of actions (CCSequence) and actions done in parallel (CCSpawn) Monday, November 8, 2010
  15. Block Game - a simple game to introduce you to

    Cocos2d Monday, November 8, 2010
  16. Commentary • It is important to know what you are

    building before you build it... • Design, look, interaction • Cheaper and faster to design than to code • ...but don’t go overboard • Avoid “analysis paralysis” • Iterate - design, code, test, rinse, repeat Monday, November 8, 2010
  17. In short... • Make it work • Next, make it

    good • Next, make it GREAT! Monday, November 8, 2010
  18. Block Game • Teach you about: • Sprites • Actions

    • Collision detection Monday, November 8, 2010
  19. Game Elements Piece user drags to remove... ...one of the

    boxes moving across the bottom of the screen... Monday, November 8, 2010
  20. Additional Notes • Single-color background • I chose yellow, but

    you could pick another color • You can use either color squares or dice images for UserSprite/boxes • Both are included in basic sample project • Using Cocos2d version 0.99.5 beta 3 Monday, November 8, 2010
  21. Game Items • The piece the user moves around is

    a sprite (UserSprite) • The boxes are sprites (BoxSprite) • Blockers that move back and forth above and below the conveyor belt Monday, November 8, 2010
  22. Game Actions • Touch and move UserSprite • Boxes just

    move right-to-left • New boxes are periodically added on right • Blockers move back and forth • UserSprite can collide with boxes and blockers Monday, November 8, 2010
  23. Miscellanous • Using XCode 3.2.5 • Using cocos2d-iphone-0.99.5-beta3 • Requires

    iOS 4.0+ (4.2 for iPad versions) Monday, November 8, 2010
  24. Setting the scene • Set orientation to portrait (Example 01)

    • Set background color yellow (Example 02) Monday, November 8, 2010
  25. Miscellaneous changes • Random start values - Example 08 •

    CocosDension (Sound) - Example 09 • iPad support - Example 10 Monday, November 8, 2010
  26. For more information • http://cocos2d-iphone.org - Cocos2d for iOS information

    • New book: Learn iPhone and iPad Cocos2D Game Development (Apress) • Previous 360iDev Presentations, including: • “Introduction to 2d Game Programming Using cocos2d” (360iDev Denver 2009) • “Cocos2D + Box2D” (360iDev San Jose) • Blogs (Ray Wenderlich’s is especially good) Monday, November 8, 2010
  27. My Contact Information • Email: [email protected] • Our company: http://beret.com

    • Web: http://tomfrauenhofer.com • Twitter: @tvf Monday, November 8, 2010