SlideShare uma empresa Scribd logo
Desenvolvimento de jogos com Cocos2d-x
GameDays´15
Sobre
• Rafael Martins
• LudeoLabs. Skyzone Entertainment, Electronic Arts e Hive
Digital
• E-mail: ra.martins13@gmail.com
• Portfolio: www.mobilegamedeveloper.com.br
GameDays´15
O que é Cocos2d-x?
• Uma engine open source 2d otimizada com
OpenGL
• 400.000+ desenvolvedores
• Inicialmente criada por Ricardo Quesada em
2008 (Cocos2D)
• Portada por Zhe Wang em 2010 para c++
GameDays´15
Vantagens
• Rápida prototipação
• Comunidade Experiente
• Não são necessários conhecimentos sólidos em
OpenGL
• Abstração de camadas de sistemas operacionais
• Performance
GameDays´15
Pontos Negativos
• Interface visual
• Curva de aprendizado para não-programadores
• Plugins dinâmicos
GameDays´15
Que empresas usam?
GameDays´15
Showcase
• Badland
• Castle Clash
• Family Guy: The Quest for Stuff
• Marvel Avengers Alliance
• Angry Bird Fight
• Clash of Kings
• Star Wars: Tiny Death Star
• Final Fantasy Record
• Diamond Dash
GameDays´15
Instalação
• Framework:
http://www.cocos2d-x.org/download
• Python 2.7.5
• Apache Ant
• Visual Studio 2012+
• Xcode 5+
• Android SDK
• Android NDK (r9d ou r10e)
• Windows Phone 8 SDK
GameDays´15
Versões
Cocos2d-x V3.8.1 (c++, lua)
Cocos2d-x V2.2.6 (c++, lua)
Cocos2d-JS (javascript)
GameDays´15
Plataformas
• Android
• iOS
• Windows Phone 8+
• Windows 7/8/10
• Linux
• Mac OS
• HTML5
• Tizen
• Bada
• Blackberry
GameDays´15
Módulos
• Graphics
• Audio
• Events
• Schedulers/Callbacks
• Input
• GUI
• Data Structure
• Network
• Physics
• Memory Management
• File Stream, I/O
• Debugging
GameDays´15
Gráficos / Animações
• Node
▫ Scene
▫ Layer
▫ Sprite
▫ Menu
• Actions
GameDays´15
Gráficos / Animações
GameDays´15
LayerScene Sprite
Gráficos / Animações
GameDays´15
• Ordens para um Node
• Modifica atributos do objeto
• Chamando uma ação
▫ sprite->runAction(Blink::create(2.0f, 10));
• Algumas ações:
▫ Posição (x,y)
 MoveBy, MoveTo, JumpBy
▫ Escala
 ScaleBy, ScaleTo
▫ Visibilidade
 Show, Hide, Blink
▫ Opacidade
 FadeIn, FadeOut, FadeTo
Audio
• SimpleAudioEngine
auto audio = SimpleAudioEngine::getInstance();
• Música: Play, Stop, Resume, Pause, Volume
audio->playBackgrundMusic(“music.mp3”, false);
audio->stopBackgroundMusic();
audio->resumeBackgroundMusic();
Audio->pauseBackgroundMusic();
Audio->setBackgroundMusicVolume(5.0f);
GameDays´15
Audio
• Efeitos Sonoros (SFX)
audio->playEffect(“music.mp3”, false, 1.0f, 1.0f, 1.0f);
audio->stopEffect();
audio->resumeEffect();
audio->resumeAllEffects();
Audio->pauseEffect();
• Preload
audio->preloadEffect(“effect.mp3”);
audio->preloadBackgroundMusic(“music.mp3”);
audio->unloadEffect();
GameDays´15
Input
• Touch
• Keyboard
• Accelerometer
• Gamepad
GameDays´15
Input - Touch Event
• Registrando eventos
• .h
void onTouchesBegan(const std:vector<Touch*>& touches, Event* pEvent);
void onTouchesEnded(const std:vector<Touch*>& touches, Event* pEvent);
void onTouchesMoved(const std:vector<Touch*>& touches, Event* pEvent);
• .cpp (init)
auto listener = EventListenerAllAtOnce::create();
listener->onTouchesBegan = CC_CALLBACK_2(GameScene::onTouchesBegan, this);
listener->onTouchesMoved = CC_CALLBACK_2(GameScene::onTouchesMoved, this);
listener->onTouchesEnded = CC_CALLBACK_2(GameScene::onTouchesEnded, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
GameDays´15
Input - Outros
• Keyboard
void onKeyReleased(EventKeyboard::KeyCode keyCode, Event *pEvent);
void onKeyPressed(EventKeyboard::KeyCode keyCode, Event *pEvent);
• Acelerômetro
this->setAccelerometerEnabled(true);
• Gamepad
o 3rd Party
o Implementação própria
o Joysticks virtuais
GameDays´15
Schedulers / Callbacks
• Schedulers são responsáveis por ativar os Callbacks
• Agenda funcões frame a frame ou periodicamente
• Loop principal
scheduleUpdate();
• Agendando uma função específica
schedule(schedule_selector(Enemy::move, 3.0f));
GameDays´15
Criando um projeto
• Linha de comando:
c:cocos2dx_root> cocos new MeuJogo -p
br.com.meujogo -l cpp -d Projetos
-p = nome do pacote
-l = linguagem
-d = pasta
GameDays´15
Estrutura do projeto
• Classes
• Resources
GameDays´15
Inicialização
• Entry Point
▫ Classes/AppDelegate.cpp
• Resources
▫ fonts
▫ Ui
▫ Objects
▫ Iphone6/objects
▫ Android/ui
GameDays´15
AppDelegate
SplashScene
Serviços
• SDKBox
• NextPeer
• Google Game Services
• Game Center
• Game Analytics
• Facebook
• Kamcord
GameDays´15
SDKBox
In-App Purchase
Analytics
Ads / Videos
Social
Rate / Age Check
GameDays´15
SDKBox
• Instalação
c:cocos2dx_rootprojetosdkbox import [modulo]
• Cópia automática de classes e recursos
• Arquivo JSON para configuração de módulos
GameDays´15
Ferramentas
• TexturePacker
• Physics Editor
• SpriteKit
• Tiled
GameDays´15
Tiled
• Principais componentes:
 TMXTiledMap
 TMXLayer
 TMXObjectGroup
TMXTiledMap* map = TMXTiledMap::create(“map1.tmx”);
addChild(map);
GameDays´15
Texture Packer
• Gerador de Spritesheets
• Arquivo Plist
• Armazenando texturas no cache
SpriteFrameCache::getInstance()->addSpriteFramesWithFile(“sprites.plist”,
“sprites.png");
• Criando uma sprite a partir do cache
Sprite* playerSprite = Sprite::createWithSpriteFrameName(“player_idle.png”);
GameDays´15
Links
• Cocos2d-x
http://www.cocos2d-x.org/
• TexturePacker
https://www.codeandweb.com/texturepacker
• Tiled
http://www.mapeditor.org/
• SDKBox
http://www.cocos2d-x.org/sdkbox
GameDays´15
Q & A
GameDays´15
Obrigado!
GameDays´15

Mais conteúdo relacionado

PPTX
TDC2013 - Cocos2d-x
PPTX
SBGames 2013 - Sistemas Especialistas
PDF
Conceitos Introdutórios de Física e Inteligência Artifical para Jogos
PPTX
Motivação em Jogos Digitais
PPTX
Playstation Mobile - Campus Party 2013
PPTX
Desenvolvimento de jogos com Cocos2d-x
PDF
Desenvolvimento de jogos para MSX
PPTX
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-x
TDC2013 - Cocos2d-x
SBGames 2013 - Sistemas Especialistas
Conceitos Introdutórios de Física e Inteligência Artifical para Jogos
Motivação em Jogos Digitais
Playstation Mobile - Campus Party 2013
Desenvolvimento de jogos com Cocos2d-x
Desenvolvimento de jogos para MSX
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-x

Semelhante a Desenvolvimento de jogos com Cocos2d-x (20)

PPTX
Apresentacao de TCC
PPT
Motores para Jogos: Apresentação Laboratório de Jogos_UDF_Moa_2013
PPT
IntroduçãO Ao Xna Campus Party
PPTX
Introdução ao XNA
PDF
Palestra Game Engines para Windows 8
PPT
Usando JavaFx No Desenvolvimento De Jogos
PPTX
Desenvolvimento de Jogos com Corona SDK
PPTX
Introdução ao cocos sharp
PPTX
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
PPTX
A chegada das linguagens modernas nos games (1).pptx
PDF
Desenvolvimento de jogos para iOS com Cocos2d
PPTX
Mobile Game Development.pptx
PPSX
Júlio Pescuite - Advanced Topics for Game Developers
PDF
IntroduçãO Ao Xna Campus Party
PPTX
TDC 2013 SP | Trilha Games: Acelerando Games Middleware
PPTX
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
PDF
Curso (2010) - Desenvolvimento de Jogos 2D com XNA
PPTX
Ferramentas para o desenvolvimento de jogos mobile
PPTX
Advanced topics for game developers
PDF
Jogo para dispositivos móveis
Apresentacao de TCC
Motores para Jogos: Apresentação Laboratório de Jogos_UDF_Moa_2013
IntroduçãO Ao Xna Campus Party
Introdução ao XNA
Palestra Game Engines para Windows 8
Usando JavaFx No Desenvolvimento De Jogos
Desenvolvimento de Jogos com Corona SDK
Introdução ao cocos sharp
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
A chegada das linguagens modernas nos games (1).pptx
Desenvolvimento de jogos para iOS com Cocos2d
Mobile Game Development.pptx
Júlio Pescuite - Advanced Topics for Game Developers
IntroduçãO Ao Xna Campus Party
TDC 2013 SP | Trilha Games: Acelerando Games Middleware
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
Curso (2010) - Desenvolvimento de Jogos 2D com XNA
Ferramentas para o desenvolvimento de jogos mobile
Advanced topics for game developers
Jogo para dispositivos móveis
Anúncio

Último (19)

PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Custos e liquidação no SAP Transportation Management, TM130 Col18
Processos na gestão de transportes, TM100 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Apple Pippin Uma breve introdução. - David Glotz
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula04-Academia Heri- Tecnologia Geral 2025
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
COBITxITIL-Entenda as diferença em uso governança TI
Aula 18 - Manipulacao De Arquivos python
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Anúncio

Desenvolvimento de jogos com Cocos2d-x

  • 1. Desenvolvimento de jogos com Cocos2d-x GameDays´15
  • 2. Sobre • Rafael Martins • LudeoLabs. Skyzone Entertainment, Electronic Arts e Hive Digital • E-mail: ra.martins13@gmail.com • Portfolio: www.mobilegamedeveloper.com.br GameDays´15
  • 3. O que é Cocos2d-x? • Uma engine open source 2d otimizada com OpenGL • 400.000+ desenvolvedores • Inicialmente criada por Ricardo Quesada em 2008 (Cocos2D) • Portada por Zhe Wang em 2010 para c++ GameDays´15
  • 4. Vantagens • Rápida prototipação • Comunidade Experiente • Não são necessários conhecimentos sólidos em OpenGL • Abstração de camadas de sistemas operacionais • Performance GameDays´15
  • 5. Pontos Negativos • Interface visual • Curva de aprendizado para não-programadores • Plugins dinâmicos GameDays´15
  • 7. Showcase • Badland • Castle Clash • Family Guy: The Quest for Stuff • Marvel Avengers Alliance • Angry Bird Fight • Clash of Kings • Star Wars: Tiny Death Star • Final Fantasy Record • Diamond Dash GameDays´15
  • 8. Instalação • Framework: http://www.cocos2d-x.org/download • Python 2.7.5 • Apache Ant • Visual Studio 2012+ • Xcode 5+ • Android SDK • Android NDK (r9d ou r10e) • Windows Phone 8 SDK GameDays´15
  • 9. Versões Cocos2d-x V3.8.1 (c++, lua) Cocos2d-x V2.2.6 (c++, lua) Cocos2d-JS (javascript) GameDays´15
  • 10. Plataformas • Android • iOS • Windows Phone 8+ • Windows 7/8/10 • Linux • Mac OS • HTML5 • Tizen • Bada • Blackberry GameDays´15
  • 11. Módulos • Graphics • Audio • Events • Schedulers/Callbacks • Input • GUI • Data Structure • Network • Physics • Memory Management • File Stream, I/O • Debugging GameDays´15
  • 12. Gráficos / Animações • Node ▫ Scene ▫ Layer ▫ Sprite ▫ Menu • Actions GameDays´15
  • 14. Gráficos / Animações GameDays´15 • Ordens para um Node • Modifica atributos do objeto • Chamando uma ação ▫ sprite->runAction(Blink::create(2.0f, 10)); • Algumas ações: ▫ Posição (x,y)  MoveBy, MoveTo, JumpBy ▫ Escala  ScaleBy, ScaleTo ▫ Visibilidade  Show, Hide, Blink ▫ Opacidade  FadeIn, FadeOut, FadeTo
  • 15. Audio • SimpleAudioEngine auto audio = SimpleAudioEngine::getInstance(); • Música: Play, Stop, Resume, Pause, Volume audio->playBackgrundMusic(“music.mp3”, false); audio->stopBackgroundMusic(); audio->resumeBackgroundMusic(); Audio->pauseBackgroundMusic(); Audio->setBackgroundMusicVolume(5.0f); GameDays´15
  • 16. Audio • Efeitos Sonoros (SFX) audio->playEffect(“music.mp3”, false, 1.0f, 1.0f, 1.0f); audio->stopEffect(); audio->resumeEffect(); audio->resumeAllEffects(); Audio->pauseEffect(); • Preload audio->preloadEffect(“effect.mp3”); audio->preloadBackgroundMusic(“music.mp3”); audio->unloadEffect(); GameDays´15
  • 17. Input • Touch • Keyboard • Accelerometer • Gamepad GameDays´15
  • 18. Input - Touch Event • Registrando eventos • .h void onTouchesBegan(const std:vector<Touch*>& touches, Event* pEvent); void onTouchesEnded(const std:vector<Touch*>& touches, Event* pEvent); void onTouchesMoved(const std:vector<Touch*>& touches, Event* pEvent); • .cpp (init) auto listener = EventListenerAllAtOnce::create(); listener->onTouchesBegan = CC_CALLBACK_2(GameScene::onTouchesBegan, this); listener->onTouchesMoved = CC_CALLBACK_2(GameScene::onTouchesMoved, this); listener->onTouchesEnded = CC_CALLBACK_2(GameScene::onTouchesEnded, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); GameDays´15
  • 19. Input - Outros • Keyboard void onKeyReleased(EventKeyboard::KeyCode keyCode, Event *pEvent); void onKeyPressed(EventKeyboard::KeyCode keyCode, Event *pEvent); • Acelerômetro this->setAccelerometerEnabled(true); • Gamepad o 3rd Party o Implementação própria o Joysticks virtuais GameDays´15
  • 20. Schedulers / Callbacks • Schedulers são responsáveis por ativar os Callbacks • Agenda funcões frame a frame ou periodicamente • Loop principal scheduleUpdate(); • Agendando uma função específica schedule(schedule_selector(Enemy::move, 3.0f)); GameDays´15
  • 21. Criando um projeto • Linha de comando: c:cocos2dx_root> cocos new MeuJogo -p br.com.meujogo -l cpp -d Projetos -p = nome do pacote -l = linguagem -d = pasta GameDays´15
  • 22. Estrutura do projeto • Classes • Resources GameDays´15
  • 23. Inicialização • Entry Point ▫ Classes/AppDelegate.cpp • Resources ▫ fonts ▫ Ui ▫ Objects ▫ Iphone6/objects ▫ Android/ui GameDays´15 AppDelegate SplashScene
  • 24. Serviços • SDKBox • NextPeer • Google Game Services • Game Center • Game Analytics • Facebook • Kamcord GameDays´15
  • 25. SDKBox In-App Purchase Analytics Ads / Videos Social Rate / Age Check GameDays´15
  • 26. SDKBox • Instalação c:cocos2dx_rootprojetosdkbox import [modulo] • Cópia automática de classes e recursos • Arquivo JSON para configuração de módulos GameDays´15
  • 27. Ferramentas • TexturePacker • Physics Editor • SpriteKit • Tiled GameDays´15
  • 28. Tiled • Principais componentes:  TMXTiledMap  TMXLayer  TMXObjectGroup TMXTiledMap* map = TMXTiledMap::create(“map1.tmx”); addChild(map); GameDays´15
  • 29. Texture Packer • Gerador de Spritesheets • Arquivo Plist • Armazenando texturas no cache SpriteFrameCache::getInstance()->addSpriteFramesWithFile(“sprites.plist”, “sprites.png"); • Criando uma sprite a partir do cache Sprite* playerSprite = Sprite::createWithSpriteFrameName(“player_idle.png”); GameDays´15
  • 30. Links • Cocos2d-x http://www.cocos2d-x.org/ • TexturePacker https://www.codeandweb.com/texturepacker • Tiled http://www.mapeditor.org/ • SDKBox http://www.cocos2d-x.org/sdkbox GameDays´15