Разработка игр с помощью cocos2d

52
Разработка игр с помощью cocos2d

Upload: stanislav-krasnoyarov

Post on 18-Jun-2015

1.193 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: Разработка игр с помощью Cocos2d

Разработка игр с помощью cocos2d

Page 2: Разработка игр с помощью Cocos2d

Home Sweet Home

Treasure Masters, Inc.

Page 3: Разработка игр с помощью Cocos2d

– “Компьютерные игры – это перемещение картинок на экране в ответ на действия игрока”

Page 4: Разработка игр с помощью Cocos2d
Page 5: Разработка игр с помощью Cocos2d
Page 6: Разработка игр с помощью Cocos2d
Page 7: Разработка игр с помощью Cocos2d

рендерингспрайтовая анимацияпокадровая анимацияобработка вводаобработка коллизий

Page 8: Разработка игр с помощью Cocos2d
Page 9: Разработка игр с помощью Cocos2d

cocos2d-iphone Objective-C / iOS

cocos2d-x C++/crossplatform

Page 10: Разработка игр с помощью Cocos2d

v. 1.x OpenGL ES 1.1v. 2.x OpenGL ES 2.0

Page 11: Разработка игр с помощью Cocos2d

Объектная модель

Page 12: Разработка игр с помощью Cocos2d

CCNodepositionscalerotationchildren

Page 13: Разработка игр с помощью Cocos2d

CCNode

CCScene CCSprite Customimage

Page 14: Разработка игр с помощью Cocos2d
Page 15: Разработка игр с помощью Cocos2d

CCScene

PlayerNode : CCNode

CCSprite

EnemyNode : CCNode

CCSprite

Page 16: Разработка игр с помощью Cocos2d

DEMO

Page 17: Разработка игр с помощью Cocos2d

CCNodepositionscalerotationanchorPointchildren

Page 18: Разработка игр с помощью Cocos2d

anchorPoint = (0, 0) anchorPoint = (0.5, 0.5)

Page 19: Разработка игр с помощью Cocos2d

anchorPoint = (0, 0) anchorPoint = (0.5, 0.5)

scale

Page 20: Разработка игр с помощью Cocos2d

anchorPoint = (0, 0) anchorPoint = (0.5, 0.5)

Page 21: Разработка игр с помощью Cocos2d

anchorPoint = (0, 0) anchorPoint = (0.5, 0.5)

Page 22: Разработка игр с помощью Cocos2d

Спрайтовая анимация

Page 23: Разработка игр с помощью Cocos2d

Спрайтовая анимация

update (float dt) { if (state == Moving) {

position.x += 5 * dt; }}

CustomNode

Page 24: Разработка игр с помощью Cocos2d

Спрайтовая анимация

update (float dt) { if (state == Moving) {

position.x += 5 * dt; }}

action = new MoveAction(50 /* x */,

0 /* y */, 5 /* sec */)

node->runAction(action)

обычно cocos2d

Page 25: Разработка игр с помощью Cocos2d

Виды действийбазовые действия

CCMoveTo, CCMoveByCCScaleTo, CCScaleBy...

управление

CCSequence, CCSpawn, CCRepeat, CCRepeatForever

callback

CCCallFunc

Page 26: Разработка игр с помощью Cocos2d

Покадровая анимация

Page 27: Разработка игр с помощью Cocos2d
Page 28: Разработка игр с помощью Cocos2d

Покадровая анимация

• CCAnimation – набор кадров

• addFrame(“frame_x.png”)

• CCAnimate::create – action

• CCNode::runAction(CCAnimate ... )

Page 29: Разработка игр с помощью Cocos2d

DEMO

Page 30: Разработка игр с помощью Cocos2d

Обработка нажатий

Page 31: Разработка игр с помощью Cocos2d

CCNode

CCScene CCSprite Customimage

CCLayer

Page 32: Разработка игр с помощью Cocos2d

CCScene

hudLayer : CCLayer

...

gameLayer : CCLayer

...

Page 33: Разработка игр с помощью Cocos2d

CCTargetedDelegate

virtual bool ccTouchBegan(CCTouch *, CCEvent *);virtual void ccTouchMoved(CCTouch *, CCEvent *);virtual void ccTouchEnded(CCTouch *, CCEvent *);virtual void ccTouchCancelled(CCTouch *, CCEvent *);

ControlLayer : CCLayer

Page 34: Разработка игр с помощью Cocos2d

c-tor() { setIsTouchEnabled(true);}

void X::registerWithTouchDispatcher(){ CCDirector::sharedDirector()

->getTouchDispatcher() ->addTargetedDelegate(this, 0, true);

}

ControlLayer : CCLayer

Page 35: Разработка игр с помощью Cocos2d

bool X::ccTouchBegan(CCTouch *pTouch, CCEvent *) { CCPoint touchPoint = convertTouchToNodeSpace(pTouch); ...

return true;}

ControlLayer : CCLayer

Page 36: Разработка игр с помощью Cocos2d

DEMO

Page 37: Разработка игр с помощью Cocos2d

Обработка коллизий

Page 38: Разработка игр с помощью Cocos2d

for each bullet for each enemy if (bullet

hits enemy)

enemy hit

Page 39: Разработка игр с помощью Cocos2d
Page 40: Разработка игр с помощью Cocos2d
Page 41: Разработка игр с помощью Cocos2d

DEMO

Page 42: Разработка игр с помощью Cocos2d

• Объектная модель

• Отрисовка с помощью CCSprite

• Спрайтовая анимация (update или action)

• Покадровая анимация

• Обработка нажатий

• Обработка коллизий

Page 43: Разработка игр с помощью Cocos2d

Первые шаги

Page 44: Разработка игр с помощью Cocos2d

• Скачать и установить cocos2d/cocos2d-x

• Создать и запустить проект по шаблону

• (опц.) Обсудить реализацию игры

• Создать первый класс игрового объекта

Page 45: Разработка игр с помощью Cocos2d
Page 46: Разработка игр с помощью Cocos2d

Текстурные атласы

Page 47: Разработка игр с помощью Cocos2d
Page 48: Разработка игр с помощью Cocos2d
Page 49: Разработка игр с помощью Cocos2d
Page 50: Разработка игр с помощью Cocos2d

CCSpriteSheet

CCSprite

CCSprite

CCSprite

Page 51: Разработка игр с помощью Cocos2d

Particle System

Page 52: Разработка игр с помощью Cocos2d

CCParticleSystem .position .velocity .gravity .texture...addChild(system)