SlideShare uma empresa Scribd logo
Desenvolvendo
Jogos 2D em
HTML5
Pedro Kayatt
@pekayatt
COCOS2D
 Cross Platform
 IOS
 Android
 Windows Phone
 Blackberry, Bada, Tizen, geladeira da minha avó….
 Open Source
 Fast
 Prove
 25% de todos jogos mobiles (muito forte na Ásia)
Coco2D – Qual?
 Cocos2D-X
 C++
 Com maior suporte a diferentes plataformas
 Rápida e leve
 Cocos2D-XNA
 Windows Phone
 MonoGame
 Cocos2D-HTML5
 Rápida (Javascript)
 Multi plataforma (em navegadores)
 Javascript Binding
Cocos2D-X - Arquitetura
Cocos2D-HTML5 - Arquitetura
Javascript binding what?
 Performance até 20x melhor do que no mobile browser
 Como? Mágica? Não! É tecnologia (e um pouco de magia negra)
 Mozilla Spidermonkey – Roda o javascript
como código nativo (C++)
The magic
Preparando o Ambiente
http://www.cocos2d-x.org/download
Instalando Web-Service
• XAMPP : for windows, Mac, Linux.
• WAMP : for windows
• MAMP : for mac
Testando
Javascript IDE
 Notepad ++
 Aptana
 Jetbraind Webstorm
 Visual Studio 2012
Estrutura
Hierárquica
Exemplos
 MoonWarriors – um jogo no melhor estilo “shooter” onde o jogador
controla uma nave espacial
 WatermelonWithMe – utiliza de um simulador de física 2D
(chipmunk) e desafia o jogador a dirigir uma caminhonete sem
deixar melancias caírem de sua caçamba.
 CrystalCraze – um jogo no estilo Puzzle elaborado com uma
ferramenta chamada CocosBuilder
 CocosDragonJS – jogo plataforma parecido com sucessos como
Doogle Jump e Mega Jump, utiliza uma mescla de CocosBuilder
com edição de Javascript
Moonwarriors
Exemplo – HelloHTML5World
var c = {
COCOS2D_DEBUG:2, //0 desliga, 1 básica, ou 2 para depuração completa
box2d:false, //Define se utilizaremos a extensão Box2D de Simulação Fisica
chipmunk:false, //Define a utilização da extensão Chipmunk
showFPS:true, //Exibir Quadros por Segundo
frameRate:60, //Define com quantos quadros por segundo seu jogo rodará
loadExtension:false, //Carregar as Extensões da Cocos2D
renderMode:0, //Escolhe o RenderMode: 0(padrão), 1(Canvas), 2(WebGL)
tag:'gameCanvas', //o element DOM onde rodará a Cocos2D
engineDir:'../cocos2d/', //localização da Engine
SingleEngineFile:'', //Se a Engine foi minimizada para apenas um arquivo.
appFiles:[
'src/resource.js',
'src/myApp.js'//Adicione todos os seus arquivos fontes aqui.
]
};
Adicionando Sprites
var lazyLayer = cc.Layer.create();
this.addChild(lazyLayer);
// adicionando o sprite ao lazyLayer, centralizado e usando o arquivo .png como
fonte.
this.sprite = cc.Sprite.create("res/HelloWorld.png");
this.sprite.setPosition(cc.p(size.width / 2, size.height / 2));
// escalona o Sprite para ter metade de seu tamanho nominal
this.sprite.setScale(0.5);
// gira o Sprite em 180 graus.
this.sprite.setRotation(180);
lazyLayer.addChild(this.sprite, 0);
Actions
var rotateToA = cc.RotateTo.create(2, 0);
var scaleToA = cc.ScaleTo.create(2, 1, 1);
// executa uma sequência de ações diretamente no
this.sprite
this.sprite.runAction(cc.Sequence.create(rotateToA,
scaleToA));
Entrada - Touch
// ao tocar na tela
onTouchesBegan:function (touches, event) {
this.isMouseDown = true;
},
// ao mover o toque na tela
onTouchesMoved:function (touches, event) {
if (this.isMouseDown) {
if (touches) {
this.circle.setPosition(cc.p(touches[0].getLocation().x,
touches[0].getLocation().y));
}
}
},
// ao remover o toque da tela
onTouchesEnded:function (touches, event) {
this.isMouseDown = false;
}
Entrada - Teclado
this.setKeyboardEnabled(true);
onKeyUp:function (e){
// intercepta quando uma tecla é solta
},
onKeyDown:function (e){
// intercepta quando uma tecla é pressionada
Testando no Navegador
CONFIGURANDO A COCOS2D-X PARA O
JAVASCRIPT BINDING
Abrindo no VS2012
Criando seu projeto
 Usando Python (3.2)
EXECUTANDO O PROJETO NO ANDROID
 Android SDK
 http://developer.android.com/sdk/index.html
 Eclipse ADT Bundle
 Baixar Emulador Intel, HAXM e tudo que quiser no Android Manager
 Android NDK
 http://developer.android.com/tools/sdk/ndk/index.html
 CygWin
 Procure Mirrors mais amigaveis… (o default é um inferno)
Setando variaveis de ambiente
 c:cygwinhomeuser.bashprofile, abra este arquivo com o
Notepad++ e adicione:
 NDK_ROOT=/cygdrive/c/android-ndk-r8e
 Export NDK_ROOT
 Faça pelo Opções Avançadas do Windows
Compilando o projeto
 ./build-native.sh
 Deu problema?
 CHMOD 777 –R .
Importando no eclipse
PROBLEMA!?
Relaxe e aproveite!
Perguntas?
Obrigado!
 Pedro Kayatt
 @pekayatt
 Naked Monkey Games
 @nakedmonkeyG
 www.nakedmonkey.com.br
Mais uma coisinha….

Mais conteúdo relacionado

PPTX
Desenvolvendo jogos multiplataforma usando cocos2d-js
KEY
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
ODP
Do zero ao jogo multiplataforma com cocos2d
PPT
Aula maps
PPTX
Containers com docker #CPRecife4
PPTX
Flappy - Paris 2015
PDF
Games with Win 8 Style by Neneng
PPT
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Desenvolvendo jogos multiplataforma usando cocos2d-js
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Do zero ao jogo multiplataforma com cocos2d
Aula maps
Containers com docker #CPRecife4
Flappy - Paris 2015
Games with Win 8 Style by Neneng
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...

Destaque (20)

PPTX
EastBay.NET - Introduction to MonoTouch
PPTX
CocosSharp_XHackNight_07feb
PPTX
Cross platform physics games - NDC 2014
PDF
Madrid .NET Meetup: Microsoft open sources .NET!
PPTX
.NET? MonoDroid Does
PPTX
Xna and mono game
PDF
Multyplatform and mono part 2 - Matteo Nicolotti
PPTX
Cross-platform Game Dev w/ CocosSharp
PDF
Introduction to CocosSharp
PDF
Gaming in Csharp
PPTX
Generative Art Hands On with F#
PDF
Monogame and xna
PDF
Intro to Gaming- MonoGame/CocosSharp/UrhoSharp
PPTX
Flappy bird game in c#
PDF
Tips & Tricks that every game developer should know
PPTX
Ready, steady, cross platform games - ProgNet 2015
PPTX
Building a game in a day
PPTX
Mobile F#un
PPTX
UniteKorea2014 - Making flappy bird workshop
PPTX
Smyowl - desenvolvimento games win8
EastBay.NET - Introduction to MonoTouch
CocosSharp_XHackNight_07feb
Cross platform physics games - NDC 2014
Madrid .NET Meetup: Microsoft open sources .NET!
.NET? MonoDroid Does
Xna and mono game
Multyplatform and mono part 2 - Matteo Nicolotti
Cross-platform Game Dev w/ CocosSharp
Introduction to CocosSharp
Gaming in Csharp
Generative Art Hands On with F#
Monogame and xna
Intro to Gaming- MonoGame/CocosSharp/UrhoSharp
Flappy bird game in c#
Tips & Tricks that every game developer should know
Ready, steady, cross platform games - ProgNet 2015
Building a game in a day
Mobile F#un
UniteKorea2014 - Making flappy bird workshop
Smyowl - desenvolvimento games win8
Anúncio

Semelhante a Desenvolvendo Jogos 2D em HTML5 - Cocos2d-x (14)

PPTX
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-x
PPTX
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
PPTX
TDC2013 - Cocos2d-x
PDF
Desenvolvimento de jogos para iOS com Cocos2d
PPTX
Introdução ao cocos sharp
PPTX
Games development
PDF
Desenvolvimento de jogos com HTML5 e javascript
PDF
Desenvolvimento de Jogos com HTML5
PPTX
Interfaces de Games para Diferentes Telas
PPTX
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
PPTX
Desenvolvimento de Jogos com Corona SDK
PPT
TDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
PPTX
Playstation Mobile - Campus Party 2013
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-x
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2013 - Cocos2d-x
Desenvolvimento de jogos para iOS com Cocos2d
Introdução ao cocos sharp
Games development
Desenvolvimento de jogos com HTML5 e javascript
Desenvolvimento de Jogos com HTML5
Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
Desenvolvimento de Jogos com Corona SDK
TDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
Playstation Mobile - Campus Party 2013
Anúncio

Mais de Pedro Kayatt (11)

PPTX
Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?
PPTX
Utilizando recursos de realidade aumentada em aplicações
PPTX
SPRV #3 - Videos 360 - Audio VR e Templates de UE4
PPTX
SPRV #2 - São Paulo Realidade Virtual - Boas práticas
PDF
SPRV #1- São Paulo Realidade Virtual - Introdução
PDF
ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...
PDF
VRMonkey - Uma nova realidade
PPTX
Seguindo seu sonho - Fundação da Naked Monkey
PPTX
AppCircus - Badaboom A Dino's Rhythm Game
PPTX
Realidade Virtual - O Futuro é agora!
PDF
ISD 2015 - Interfaces de Games para Diferentes Telas
Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?
Utilizando recursos de realidade aumentada em aplicações
SPRV #3 - Videos 360 - Audio VR e Templates de UE4
SPRV #2 - São Paulo Realidade Virtual - Boas práticas
SPRV #1- São Paulo Realidade Virtual - Introdução
ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...
VRMonkey - Uma nova realidade
Seguindo seu sonho - Fundação da Naked Monkey
AppCircus - Badaboom A Dino's Rhythm Game
Realidade Virtual - O Futuro é agora!
ISD 2015 - Interfaces de Games para Diferentes Telas

Último (20)

PPTX
Introdução à Agronomia - 5 fatos sobre a agronomia
PPT
Acidentes de trabalho e esposição riscovdfv
PDF
BIOQUIMICA 1 - REVISAO BIOQUIMICA CELULAR
PPTX
Aula_Osciloscópio_Exercícios_Simulações_
PDF
Boas práticas em rebobinamento trifásico .pdf
PPTX
Aula_Semicondutortes_Diodos e LEDs_apresentação
PDF
eletronica-basica_capitulo_01_2017_1s.pdf
PPTX
erro balela so para baixar naã perca tempo.pptx
PDF
Material referente ao método kanban f2ms
PDF
APRESENTACAO_ NR10 Ferramentas isoladas.pdf
PPTX
Trabalho sobre Distancia de Visibilidade do Curso de Engenharia
PPTX
TREINAMENTO DE NORMA REGULAMENTADORA NR2
PPTX
Apresentação de brainstorm geométrica colorida.pptx
PPTX
Treinamento NR-18 - Canteiro de obras.pptx
PDF
Análise do concreto permeável com adição de resíduos
PDF
Beige Dark Grey Vintage Victorian Project History Presentation_20250221_19084...
PDF
Normas, higiene e segurança na soldadura eléctrica
PPT
DIFERENTES TIPOS DE SOLO NA AGRICULTURA.
PDF
Ideal para decisões que exigem dados recentes e confiáveis.
PPT
NR 18 Condições e Meio Ambiente de Trabalho na Indústria da Construção.ppt
Introdução à Agronomia - 5 fatos sobre a agronomia
Acidentes de trabalho e esposição riscovdfv
BIOQUIMICA 1 - REVISAO BIOQUIMICA CELULAR
Aula_Osciloscópio_Exercícios_Simulações_
Boas práticas em rebobinamento trifásico .pdf
Aula_Semicondutortes_Diodos e LEDs_apresentação
eletronica-basica_capitulo_01_2017_1s.pdf
erro balela so para baixar naã perca tempo.pptx
Material referente ao método kanban f2ms
APRESENTACAO_ NR10 Ferramentas isoladas.pdf
Trabalho sobre Distancia de Visibilidade do Curso de Engenharia
TREINAMENTO DE NORMA REGULAMENTADORA NR2
Apresentação de brainstorm geométrica colorida.pptx
Treinamento NR-18 - Canteiro de obras.pptx
Análise do concreto permeável com adição de resíduos
Beige Dark Grey Vintage Victorian Project History Presentation_20250221_19084...
Normas, higiene e segurança na soldadura eléctrica
DIFERENTES TIPOS DE SOLO NA AGRICULTURA.
Ideal para decisões que exigem dados recentes e confiáveis.
NR 18 Condições e Meio Ambiente de Trabalho na Indústria da Construção.ppt

Desenvolvendo Jogos 2D em HTML5 - Cocos2d-x

  • 2. COCOS2D  Cross Platform  IOS  Android  Windows Phone  Blackberry, Bada, Tizen, geladeira da minha avó….  Open Source  Fast  Prove  25% de todos jogos mobiles (muito forte na Ásia)
  • 3. Coco2D – Qual?  Cocos2D-X  C++  Com maior suporte a diferentes plataformas  Rápida e leve  Cocos2D-XNA  Windows Phone  MonoGame  Cocos2D-HTML5  Rápida (Javascript)  Multi plataforma (em navegadores)  Javascript Binding
  • 6. Javascript binding what?  Performance até 20x melhor do que no mobile browser  Como? Mágica? Não! É tecnologia (e um pouco de magia negra)  Mozilla Spidermonkey – Roda o javascript como código nativo (C++)
  • 9. Instalando Web-Service • XAMPP : for windows, Mac, Linux. • WAMP : for windows • MAMP : for mac
  • 11. Javascript IDE  Notepad ++  Aptana  Jetbraind Webstorm  Visual Studio 2012
  • 14. Exemplos  MoonWarriors – um jogo no melhor estilo “shooter” onde o jogador controla uma nave espacial  WatermelonWithMe – utiliza de um simulador de física 2D (chipmunk) e desafia o jogador a dirigir uma caminhonete sem deixar melancias caírem de sua caçamba.  CrystalCraze – um jogo no estilo Puzzle elaborado com uma ferramenta chamada CocosBuilder  CocosDragonJS – jogo plataforma parecido com sucessos como Doogle Jump e Mega Jump, utiliza uma mescla de CocosBuilder com edição de Javascript
  • 16. Exemplo – HelloHTML5World var c = { COCOS2D_DEBUG:2, //0 desliga, 1 básica, ou 2 para depuração completa box2d:false, //Define se utilizaremos a extensão Box2D de Simulação Fisica chipmunk:false, //Define a utilização da extensão Chipmunk showFPS:true, //Exibir Quadros por Segundo frameRate:60, //Define com quantos quadros por segundo seu jogo rodará loadExtension:false, //Carregar as Extensões da Cocos2D renderMode:0, //Escolhe o RenderMode: 0(padrão), 1(Canvas), 2(WebGL) tag:'gameCanvas', //o element DOM onde rodará a Cocos2D engineDir:'../cocos2d/', //localização da Engine SingleEngineFile:'', //Se a Engine foi minimizada para apenas um arquivo. appFiles:[ 'src/resource.js', 'src/myApp.js'//Adicione todos os seus arquivos fontes aqui. ] };
  • 17. Adicionando Sprites var lazyLayer = cc.Layer.create(); this.addChild(lazyLayer); // adicionando o sprite ao lazyLayer, centralizado e usando o arquivo .png como fonte. this.sprite = cc.Sprite.create("res/HelloWorld.png"); this.sprite.setPosition(cc.p(size.width / 2, size.height / 2)); // escalona o Sprite para ter metade de seu tamanho nominal this.sprite.setScale(0.5); // gira o Sprite em 180 graus. this.sprite.setRotation(180); lazyLayer.addChild(this.sprite, 0);
  • 18. Actions var rotateToA = cc.RotateTo.create(2, 0); var scaleToA = cc.ScaleTo.create(2, 1, 1); // executa uma sequência de ações diretamente no this.sprite this.sprite.runAction(cc.Sequence.create(rotateToA, scaleToA));
  • 19. Entrada - Touch // ao tocar na tela onTouchesBegan:function (touches, event) { this.isMouseDown = true; }, // ao mover o toque na tela onTouchesMoved:function (touches, event) { if (this.isMouseDown) { if (touches) { this.circle.setPosition(cc.p(touches[0].getLocation().x, touches[0].getLocation().y)); } } }, // ao remover o toque da tela onTouchesEnded:function (touches, event) { this.isMouseDown = false; }
  • 20. Entrada - Teclado this.setKeyboardEnabled(true); onKeyUp:function (e){ // intercepta quando uma tecla é solta }, onKeyDown:function (e){ // intercepta quando uma tecla é pressionada
  • 22. CONFIGURANDO A COCOS2D-X PARA O JAVASCRIPT BINDING
  • 24. Criando seu projeto  Usando Python (3.2)
  • 25. EXECUTANDO O PROJETO NO ANDROID  Android SDK  http://developer.android.com/sdk/index.html  Eclipse ADT Bundle  Baixar Emulador Intel, HAXM e tudo que quiser no Android Manager  Android NDK  http://developer.android.com/tools/sdk/ndk/index.html  CygWin  Procure Mirrors mais amigaveis… (o default é um inferno)
  • 26. Setando variaveis de ambiente  c:cygwinhomeuser.bashprofile, abra este arquivo com o Notepad++ e adicione:  NDK_ROOT=/cygdrive/c/android-ndk-r8e  Export NDK_ROOT  Faça pelo Opções Avançadas do Windows
  • 27. Compilando o projeto  ./build-native.sh  Deu problema?  CHMOD 777 –R .
  • 31. Obrigado!  Pedro Kayatt  @pekayatt  Naked Monkey Games  @nakedmonkeyG  www.nakedmonkey.com.br