Introtoduction to cocos2d

50
Introduction to 2d Game Programming Using cocos2d Serban Porumbescu Thursday, October 1, 2009

description

-cocos2d is one of the most popular open source projects for the iphone- over 100 games shipped, with a number of them in the top 10- This introductory course will get you up to speed on:*basic architecture of the engine*using Sprites and their more efficient counterpart, AtlasSprites*user interaction (dealing with touch and multitouch events)*particle system*screen transitions*actions

Transcript of Introtoduction to cocos2d

Page 1: Introtoduction to  cocos2d

Introduction to 2d Game Programming Using cocos2d

Serban PorumbescuThursday, October 1, 2009

Page 2: Introtoduction to  cocos2d

www.hiddenelephant.com

Thursday, October 1, 2009

Page 3: Introtoduction to  cocos2d

Overview

• Why cocos2d?

• Beginner Hurdles

• cocos2d Basics

• cocos2d Specifics

• Samples and Tests

• Resources

Thursday, October 1, 2009

Page 4: Introtoduction to  cocos2d

Why cocos2d?

• Well over 200 games shipped

• Great licensing

• Lots of features

• Extremely active community

• What’s your business?

Thursday, October 1, 2009

Page 5: Introtoduction to  cocos2d

Beginner Hurdles

Thursday, October 1, 2009

Page 6: Introtoduction to  cocos2d

Beginner Hurdles

• Objective-C and Memory

• Setting Up a cocos2d Project

• Running Samples and Tests

• Understanding Tests

Thursday, October 1, 2009

Page 9: Introtoduction to  cocos2d

cocos2d Project Setup

• Super easy ... now

• sudo ./install_template.sh

Thursday, October 1, 2009

Page 10: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 11: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 12: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 13: Introtoduction to  cocos2d

Running Samples & Tests

• Wonderful source of examples that people seem to overlook

• Once noticed, folks have issues running

Thursday, October 1, 2009

Page 14: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 15: Introtoduction to  cocos2d

Running Samples & Tests

• Where are they and how do we run?

Thursday, October 1, 2009

Page 16: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 17: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 18: Introtoduction to  cocos2d

Running Samples & Tests

• Make sure to set both the “Active Target” and the “Active Executable”

Thursday, October 1, 2009

Page 19: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 20: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 21: Introtoduction to  cocos2d

Tests

• Not games

• Meant to exercise some specific functionality

• Useful for figuring stuff out

Thursday, October 1, 2009

Page 22: Introtoduction to  cocos2d

Tests

• Structured very similarly

• Some base test class

• Instantiate new test by advancing through NSStrings using NSClassFromString

Thursday, October 1, 2009

Page 23: Introtoduction to  cocos2d

Tests

• Let’s look at AtlasSpriteTest and EaseActionsTest

Thursday, October 1, 2009

Page 24: Introtoduction to  cocos2d

cocos2d Basics

Thursday, October 1, 2009

Page 25: Introtoduction to  cocos2d

cocos2d Basics

• Game has Scenes

• Each Scene has some number of Layers

• Layers capture user interaction and contain sprites

• Director manages the scenes

Thursday, October 1, 2009

Page 26: Introtoduction to  cocos2d

Scenes

• Screens in your game

• Can almost think of them as separate apps

Thursday, October 1, 2009

Page 27: Introtoduction to  cocos2d

Layers

• Take up the entire screen

• Setup to handle touch and accelerometer

• Can contain other layers and sprites (and other stuff)

Thursday, October 1, 2009

Page 28: Introtoduction to  cocos2d

Sprites

Thursday, October 1, 2009

Page 29: Introtoduction to  cocos2d

Director

• Manages moving between Scenes

• Pausing and running Scenes

• Sets up OpenGL ES

• Layer asks Director to move on

Thursday, October 1, 2009

Page 30: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 31: Introtoduction to  cocos2d

cocos2d Specifics

Thursday, October 1, 2009

Page 32: Introtoduction to  cocos2d

Thursday, October 1, 2009

Page 33: Introtoduction to  cocos2d

Important Classes• CocosNode

• Scene

• Layer

• Director

• AtlasSprite

• AtlasSpriteManager

Thursday, October 1, 2009

Page 34: Introtoduction to  cocos2d

CocosNode

Thursday, October 1, 2009

Page 35: Introtoduction to  cocos2d

CocosNode

• Lots of properties

• position, scale, camera, OpenGL z position, children

• Most objects in cocos2d inherit from CocosNode

Thursday, October 1, 2009

Page 36: Introtoduction to  cocos2d

Scene

Thursday, October 1, 2009

Page 37: Introtoduction to  cocos2d

Layer

Thursday, October 1, 2009

Page 38: Introtoduction to  cocos2d

Director(s)

Thursday, October 1, 2009

Page 39: Introtoduction to  cocos2d

AtlasSprite

Thursday, October 1, 2009

Page 40: Introtoduction to  cocos2d

AtlasSpriteManager

Thursday, October 1, 2009

Page 41: Introtoduction to  cocos2d

Sprite vs. AtlasSprite

Thursday, October 1, 2009

Page 42: Introtoduction to  cocos2d

Sprites

Thursday, October 1, 2009

Page 43: Introtoduction to  cocos2d

AtlasSprite

Thursday, October 1, 2009

Page 44: Introtoduction to  cocos2d

Sprite vs. AtlasSprite

• In general, don’t use Sprites

• AtlasSprites way faster

• It’s all about the OpenGL ES

Thursday, October 1, 2009

Page 45: Introtoduction to  cocos2d

Samples and Tests

Thursday, October 1, 2009

Page 46: Introtoduction to  cocos2d

Resources

http://www.cocos2d-iphone.org/

Thursday, October 1, 2009

Page 47: Introtoduction to  cocos2d

Resources

Wiki: http://www.cocos2d-iphone.org/wiki/doku.php/

Thursday, October 1, 2009

Page 48: Introtoduction to  cocos2d

Resources

Forums: http://www.cocos2d-iphone.org/forum/

Thursday, October 1, 2009

Page 49: Introtoduction to  cocos2d

iPhoneGameJam.com

Thursday, October 1, 2009

Page 50: Introtoduction to  cocos2d

Thanks!

Thursday, October 1, 2009