Разработка игр спомощью cocos2d
Home Sweet Home              Treasure Masters, Inc.
– “Компьютерные игры – это  перемещение картинок на  экране в ответ на действия  игрока”
рендерингспрайтовая анимацияпокадровая анимацияобработка вводаобработка коллизий
cocos2d-iphone  Objective-C / iOScocos2d-x  C++/crossplatform
v. 1.x OpenGL ES 1.1v. 2.x OpenGL ES 2.0
Объектная модель
CCNodepositionscalerotationchildren
CCNodeCCScene CCSprite Custom          image
CCScene   PlayerNode : CCNode      CCSprite  EnemyNode : CCNode     CCSprite
DEMO
CCNodepositionscalerotationanchorPointchildren
anchorPoint = (0, 0)   anchorPoint = (0.5, 0.5)
scaleanchorPoint = (0, 0)           anchorPoint = (0.5, 0.5)
anchorPoint = (0, 0)   anchorPoint = (0.5, 0.5)
anchorPoint = (0, 0)   anchorPoint = (0.5, 0.5)
Спрайтовая анимация
Спрайтовая анимация    CustomNode     update (float dt) {       if (state == Moving) {          position.x += 5 * dt;      ...
Спрайтовая анимация     обычно                         cocos2dupdate (float dt) {           action = new  if (state == Movi...
Виды действийбазовые действия            callbackCCMoveTo, CCMoveBy          CCCallFuncCCScaleTo, CCScaleBy...управлениеCC...
Покадровая анимация
Покадровая анимация• CCAnimation – набор кадров • addFrame(“frame_x.png”)• CCAnimate::create – action• CCNode::runAction(C...
DEMO
Обработка нажатий
CCNode   CCLayerCCScene CCSprite Custom        image
CCScene   hudLayer : CCLayer      ...  gameLayer : CCLayer     ...
ControlLayer : CCLayer               CCTargetedDelegatevirtual bool ccTouchBegan(CCTouch *, CCEvent *);virtual void ccTouc...
ControlLayer : CCLayerc-tor() {   setIsTouchEnabled(true);}void X::registerWithTouchDispatcher(){  CCDirector::sharedDirec...
ControlLayer : CCLayerbool X::ccTouchBegan(CCTouch *pTouch, CCEvent *) { CCPoint touchPoint = convertTouchToNodeSpace(pTou...
DEMO
Обработка коллизий
for each bullet   for each enemy      if (bullet          hits enemy)        enemy hit
DEMO
• Объектная модель• Отрисовка с помощью CCSprite• Спрайтовая анимация (update или action)• Покадровая анимация• Обработка ...
Первые шаги
• Скачать и установить cocos2d/cocos2d-x• Создать и запустить проект по шаблону• (опц.) Обсудить реализацию игры• Создать ...
Текстурные атласы
CCSpriteSheet   CCSprite   CCSprite   CCSprite
Particle System
CCParticleSystem   .position   .velocity   .gravity   .texture...addChild(system)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
Upcoming SlideShare
Loading in …5
×

Создание игр с помощью Cocos2D (Станислав Краснояров)

4,043 views

Published on

Презентация с Станислава Красноярова «Создание игр с помощью Cocos2D», который прошел 24 ноября 2012 года в рамках 2Niversity:
http://2niversity.ru/?tiny=16

Станислав Краснояров — руководитель команды/разработчик с десятилетним стажем. С момента выхода iPhone SDK вместе с небольшой командой занимается портированием игр с PC на iOS (Objective-C, C++, cocos-2d). Преподаватель авторского курса по разработке под iOS.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,043
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Создание игр с помощью Cocos2D (Станислав Краснояров)

  1. 1. Разработка игр спомощью cocos2d
  2. 2. Home Sweet Home Treasure Masters, Inc.
  3. 3. – “Компьютерные игры – это перемещение картинок на экране в ответ на действия игрока”
  4. 4. рендерингспрайтовая анимацияпокадровая анимацияобработка вводаобработка коллизий
  5. 5. cocos2d-iphone Objective-C / iOScocos2d-x C++/crossplatform
  6. 6. v. 1.x OpenGL ES 1.1v. 2.x OpenGL ES 2.0
  7. 7. Объектная модель
  8. 8. CCNodepositionscalerotationchildren
  9. 9. CCNodeCCScene CCSprite Custom image
  10. 10. CCScene PlayerNode : CCNode CCSprite EnemyNode : CCNode CCSprite
  11. 11. DEMO
  12. 12. CCNodepositionscalerotationanchorPointchildren
  13. 13. anchorPoint = (0, 0) anchorPoint = (0.5, 0.5)
  14. 14. scaleanchorPoint = (0, 0) anchorPoint = (0.5, 0.5)
  15. 15. anchorPoint = (0, 0) anchorPoint = (0.5, 0.5)
  16. 16. anchorPoint = (0, 0) anchorPoint = (0.5, 0.5)
  17. 17. Спрайтовая анимация
  18. 18. Спрайтовая анимация CustomNode update (float dt) { if (state == Moving) { position.x += 5 * dt; } }
  19. 19. Спрайтовая анимация обычно cocos2dupdate (float dt) { action = new if (state == Moving) { MoveAction(50 /* x */, position.x += 5 * dt; 0 /* y */, } 5 /* sec */)} node->runAction(action)
  20. 20. Виды действийбазовые действия callbackCCMoveTo, CCMoveBy CCCallFuncCCScaleTo, CCScaleBy...управлениеCCSequence, CCSpawn,CCRepeat, CCRepeatForever
  21. 21. Покадровая анимация
  22. 22. Покадровая анимация• CCAnimation – набор кадров • addFrame(“frame_x.png”)• CCAnimate::create – action• CCNode::runAction(CCAnimate ... )
  23. 23. DEMO
  24. 24. Обработка нажатий
  25. 25. CCNode CCLayerCCScene CCSprite Custom image
  26. 26. CCScene hudLayer : CCLayer ... gameLayer : CCLayer ...
  27. 27. ControlLayer : CCLayer CCTargetedDelegatevirtual bool ccTouchBegan(CCTouch *, CCEvent *);virtual void ccTouchMoved(CCTouch *, CCEvent *);virtual void ccTouchEnded(CCTouch *, CCEvent *);virtual void ccTouchCancelled(CCTouch *, CCEvent *);
  28. 28. ControlLayer : CCLayerc-tor() { setIsTouchEnabled(true);}void X::registerWithTouchDispatcher(){ CCDirector::sharedDirector() ->getTouchDispatcher() ->addTargetedDelegate(this, 0, true);}
  29. 29. ControlLayer : CCLayerbool X::ccTouchBegan(CCTouch *pTouch, CCEvent *) { CCPoint touchPoint = convertTouchToNodeSpace(pTouch); ... return true;}
  30. 30. DEMO
  31. 31. Обработка коллизий
  32. 32. for each bullet for each enemy if (bullet hits enemy) enemy hit
  33. 33. DEMO
  34. 34. • Объектная модель• Отрисовка с помощью CCSprite• Спрайтовая анимация (update или action)• Покадровая анимация• Обработка нажатий• Обработка коллизий
  35. 35. Первые шаги
  36. 36. • Скачать и установить cocos2d/cocos2d-x• Создать и запустить проект по шаблону• (опц.) Обсудить реализацию игры• Создать первый класс игрового объекта
  37. 37. Текстурные атласы
  38. 38. CCSpriteSheet CCSprite CCSprite CCSprite
  39. 39. Particle System
  40. 40. CCParticleSystem .position .velocity .gravity .texture...addChild(system)

×