SlideShare una empresa de Scribd logo
1 de 28
Barcelona Developers Conference www.bcndevcon.org
           Taller de Iniciación en Cocos2D
          Barcelona 08 de Diciembre 2012
                    www.agbo.biz
cocos2d-iphone
   Alberto González
   @agonzalez_net
   cursos@agbo.biz
vs
       3D                       2D

Javascript, C#, Boo         Objective-C

  World Editor             3rd Party Tools

     Cerrado               Open Source

  400$ ~ 3000$                   0
¿Qué es cocos2d?
Framework para desarrollar juegos 2D, demos y
    otras aplicaciones gráficas/interactivas.

Funciona sobre OpenGL pero no es necesario
     conocer los entresijos de OpenGL.

  Incorpora 2 motores de físicas (Chipmunk y
                  Box2D).

  Incluye la librería de audio CocosDension.
¿Qué no es cocos2d?

 No incluye ningún tipo de editor visual para mundo,
interfaz, escenas, sprites, efectos, fuentes bitmap, etc.


             ¡Pero existen aplicaciones! :)
Algunos Ejemplos
Algunos Ejemplos
¿De dónde viene
   cocos2d?
 2005 PyCon
 2008 “Los cocos” Python
 2008 cocos2d-iphone v0.1
 2012 cocos2d-iphone v2.0
Familia cocos2d
cocos2d 2.x vs 1.x
 Open GL ES 2.0   Open GL ES 1.1
cocos2d 2.x
            Restricciones



•iOS >= 4.0OS X >= 10.6 (Snow
Leopard)Xcode 4

•LLVM 3.0 o superior
cocos2d 2.x
                Ventajas

•Mejor rendimiento
•Mejoras en sprites, animaciones,
resoluciones retina, integración con los
motores de físicas...
•Compatible con ARC
•Actual rama en desarrollo
Instalación

• Descargar de
  www.cocosd2-iphone.org/download


• Ejecutar script
  ./install-templates.sh -f
[Demo]
CCNode
CCScene   CCLayer   CCSprite
CCAction
[Demo]
Touch Events
                            HelloWorldLayer *layer = [HelloWorldLayer node];
                            layer.isTouchEnabled = YES;

- (void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- (void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
- (void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
- (void) ccTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event



- (void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint touchLocation = [touch locationInView:touch.view];
    CGPoint touchLocationGL = [[CCDirector sharedDirector] convertToGL:touchLocation];
    // do what needed
}
[Demo]
Autorotation iOS 6

           “Autorotation is changing in iOS 6. In iOS 6,
the shouldAutorotateToInterfaceOrientation: method of
  UIViewController is deprecated. In its place, you should use the
    supportedInterfaceOrientationsForWindow: and
                 shouldAutorotate methods.”
Autorotation iOS 6
@interface MyNavigationController : UINavigationController <CCDirectorDelegate>
@end


@implementation MyNavigationController

// Autorotation (iOS < 6.0)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

// Autorotation (iOS >= 6.0)
- (BOOL)shouldAutorotate
{
   return YES;
}

// Autorotation (iOS >= 6.0)
- (NSUInteger)supportedInterfaceOrientations
{
   return UIInterfaceOrientationMaskLandscape;
}

@end
Game Loop

 [self scheduleUpdate];

 - (void) update:(ccTime)delta
 {
 }
Colisiones

                           boundingBox


CGRectIntersectsRect(self.player.boundingBox, self.ball.boundingBox)
[Demo]
¿Y ahora qué?
Transiciones Game Loop         TexturePacker
             Sprite Batching
 Bitmap Fonts     Game Objects Menús
Sprite Sheets ARC con CCSprite
                                       iPhone 5
Multiple Layers        Texture Atlas
Retina Devices
               Scrolling     Sprite Animations
                       Glyph Designer Audio
        Acelerómetro
 iPad                   Máquinas de estado
¿Y ahora qué?
       www.cocos2d-iphone.org/api-ref/2.0.0/
      www.cocos2d-iphone.org/wiki/doku.php/
             Learn cocos2d 2 - Apress
        Learning Cocos2D - Addison-Wesley
github.com/albertogonzalez/cocos2d-iphone-helloworld
  github.com/albertogonzalez/cocos2d-iphone-blocks
              Probar, probar, probar...
AGBO Training
          cursos@agbo.biz
http://agbo.biz/category/tech/cocos2d/

Más contenido relacionado

Destacado

Episodio de pentesting
Episodio de pentestingEpisodio de pentesting
Episodio de pentestingakencito
 
Review baroque thru neoclassicism
Review baroque thru neoclassicismReview baroque thru neoclassicism
Review baroque thru neoclassicismaddierprice
 
10 Tips for Using Social Media to Engage Volunteers
10 Tips for Using Social Media to Engage Volunteers10 Tips for Using Social Media to Engage Volunteers
10 Tips for Using Social Media to Engage VolunteersISTE
 
Turbocharge Twitter With Apps SMBMTL 082510
Turbocharge Twitter With Apps SMBMTL 082510Turbocharge Twitter With Apps SMBMTL 082510
Turbocharge Twitter With Apps SMBMTL 082510Adele McAlear
 
Cómo subir una app al app store
Cómo subir una app al app storeCómo subir una app al app store
Cómo subir una app al app storeKeepCoding
 
Elastic Tree: Saving Energy in Data Center Networks
Elastic Tree: Saving Energy in Data Center NetworksElastic Tree: Saving Energy in Data Center Networks
Elastic Tree: Saving Energy in Data Center NetworksAbhishek Sutrave
 
To Study Weld Strength and Strain Energy Absorption of Roll Over Protection S...
To Study Weld Strength and Strain Energy Absorption of Roll Over Protection S...To Study Weld Strength and Strain Energy Absorption of Roll Over Protection S...
To Study Weld Strength and Strain Energy Absorption of Roll Over Protection S...IOSR Journals
 

Destacado (7)

Episodio de pentesting
Episodio de pentestingEpisodio de pentesting
Episodio de pentesting
 
Review baroque thru neoclassicism
Review baroque thru neoclassicismReview baroque thru neoclassicism
Review baroque thru neoclassicism
 
10 Tips for Using Social Media to Engage Volunteers
10 Tips for Using Social Media to Engage Volunteers10 Tips for Using Social Media to Engage Volunteers
10 Tips for Using Social Media to Engage Volunteers
 
Turbocharge Twitter With Apps SMBMTL 082510
Turbocharge Twitter With Apps SMBMTL 082510Turbocharge Twitter With Apps SMBMTL 082510
Turbocharge Twitter With Apps SMBMTL 082510
 
Cómo subir una app al app store
Cómo subir una app al app storeCómo subir una app al app store
Cómo subir una app al app store
 
Elastic Tree: Saving Energy in Data Center Networks
Elastic Tree: Saving Energy in Data Center NetworksElastic Tree: Saving Energy in Data Center Networks
Elastic Tree: Saving Energy in Data Center Networks
 
To Study Weld Strength and Strain Energy Absorption of Roll Over Protection S...
To Study Weld Strength and Strain Energy Absorption of Roll Over Protection S...To Study Weld Strength and Strain Energy Absorption of Roll Over Protection S...
To Study Weld Strength and Strain Energy Absorption of Roll Over Protection S...
 

Similar a Iniciacion a Cocos2d en @bcndevcon

Desarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2DDesarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2Dcreagamers
 
NSCoder - Metal Collada
NSCoder - Metal ColladaNSCoder - Metal Collada
NSCoder - Metal ColladaNSCoder Mexico
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDKFe
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndkBarcelona GTUG
 
Wearables & Iot - Breve Intro
Wearables & Iot - Breve IntroWearables & Iot - Breve Intro
Wearables & Iot - Breve IntroGlobant
 
Motion Control Computing - Kinect
Motion Control Computing - KinectMotion Control Computing - Kinect
Motion Control Computing - KinectFrederick Farfán
 
Visión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y AndroidVisión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y AndroidDroidcon Spain
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Alincita Simon
 
‌Kinect v2 descripción
‌Kinect v2 descripción‌Kinect v2 descripción
‌Kinect v2 descripciónDavid López
 
Unity3D para dummies (BcnDevCon 2012)
Unity3D para dummies (BcnDevCon 2012)Unity3D para dummies (BcnDevCon 2012)
Unity3D para dummies (BcnDevCon 2012)Eduard Tomàs
 
Interfaces videojuegos
Interfaces videojuegosInterfaces videojuegos
Interfaces videojuegosFernando Solis
 
2011 05 23 Kinect for Windows SDK
2011 05 23 Kinect for Windows SDK2011 05 23 Kinect for Windows SDK
2011 05 23 Kinect for Windows SDKBruno Capuano
 
Desvelando el GDK - Droidcon Spain
Desvelando el GDK - Droidcon SpainDesvelando el GDK - Droidcon Spain
Desvelando el GDK - Droidcon SpainDroidcon Spain
 

Similar a Iniciacion a Cocos2d en @bcndevcon (20)

Desarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2DDesarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2D
 
NSCoder - Metal Collada
NSCoder - Metal ColladaNSCoder - Metal Collada
NSCoder - Metal Collada
 
Netduino
NetduinoNetduino
Netduino
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDK
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndk
 
Wearables & Iot - Breve Intro
Wearables & Iot - Breve IntroWearables & Iot - Breve Intro
Wearables & Iot - Breve Intro
 
Motion Control Computing - Kinect
Motion Control Computing - KinectMotion Control Computing - Kinect
Motion Control Computing - Kinect
 
Visión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y AndroidVisión Artificial, Accesibilidad y Android
Visión Artificial, Accesibilidad y Android
 
Expo kinect
Expo kinectExpo kinect
Expo kinect
 
NSCoder - Metal
NSCoder - MetalNSCoder - Metal
NSCoder - Metal
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++
 
‌Kinect v2 descripción
‌Kinect v2 descripción‌Kinect v2 descripción
‌Kinect v2 descripción
 
Unity3D para dummies (BcnDevCon 2012)
Unity3D para dummies (BcnDevCon 2012)Unity3D para dummies (BcnDevCon 2012)
Unity3D para dummies (BcnDevCon 2012)
 
04 android studio
04 android studio04 android studio
04 android studio
 
Interfaces videojuegos
Interfaces videojuegosInterfaces videojuegos
Interfaces videojuegos
 
Preguntas ti
Preguntas tiPreguntas ti
Preguntas ti
 
2011 05 23 Kinect for Windows SDK
2011 05 23 Kinect for Windows SDK2011 05 23 Kinect for Windows SDK
2011 05 23 Kinect for Windows SDK
 
Meetup app-moviles
Meetup app-movilesMeetup app-moviles
Meetup app-moviles
 
.Net Conf Sevilla 2018
.Net Conf Sevilla 2018.Net Conf Sevilla 2018
.Net Conf Sevilla 2018
 
Desvelando el GDK - Droidcon Spain
Desvelando el GDK - Droidcon SpainDesvelando el GDK - Droidcon Spain
Desvelando el GDK - Droidcon Spain
 

Último

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 

Último (11)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Iniciacion a Cocos2d en @bcndevcon

  • 1. Barcelona Developers Conference www.bcndevcon.org Taller de Iniciación en Cocos2D Barcelona 08 de Diciembre 2012 www.agbo.biz
  • 2. cocos2d-iphone Alberto González @agonzalez_net cursos@agbo.biz
  • 3. vs 3D 2D Javascript, C#, Boo Objective-C World Editor 3rd Party Tools Cerrado Open Source 400$ ~ 3000$ 0
  • 4. ¿Qué es cocos2d? Framework para desarrollar juegos 2D, demos y otras aplicaciones gráficas/interactivas. Funciona sobre OpenGL pero no es necesario conocer los entresijos de OpenGL. Incorpora 2 motores de físicas (Chipmunk y Box2D). Incluye la librería de audio CocosDension.
  • 5. ¿Qué no es cocos2d? No incluye ningún tipo de editor visual para mundo, interfaz, escenas, sprites, efectos, fuentes bitmap, etc. ¡Pero existen aplicaciones! :)
  • 8. ¿De dónde viene cocos2d? 2005 PyCon 2008 “Los cocos” Python 2008 cocos2d-iphone v0.1 2012 cocos2d-iphone v2.0
  • 10. cocos2d 2.x vs 1.x Open GL ES 2.0 Open GL ES 1.1
  • 11. cocos2d 2.x Restricciones •iOS >= 4.0OS X >= 10.6 (Snow Leopard)Xcode 4 •LLVM 3.0 o superior
  • 12. cocos2d 2.x Ventajas •Mejor rendimiento •Mejoras en sprites, animaciones, resoluciones retina, integración con los motores de físicas... •Compatible con ARC •Actual rama en desarrollo
  • 13. Instalación • Descargar de www.cocosd2-iphone.org/download • Ejecutar script ./install-templates.sh -f
  • 16. CCScene CCLayer CCSprite
  • 19. Touch Events HelloWorldLayer *layer = [HelloWorldLayer node]; layer.isTouchEnabled = YES; - (void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event - (void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event - (void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event - (void) ccTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event - (void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint touchLocation = [touch locationInView:touch.view]; CGPoint touchLocationGL = [[CCDirector sharedDirector] convertToGL:touchLocation]; // do what needed }
  • 21. Autorotation iOS 6 “Autorotation is changing in iOS 6. In iOS 6, the shouldAutorotateToInterfaceOrientation: method of UIViewController is deprecated. In its place, you should use the supportedInterfaceOrientationsForWindow: and shouldAutorotate methods.”
  • 22. Autorotation iOS 6 @interface MyNavigationController : UINavigationController <CCDirectorDelegate> @end @implementation MyNavigationController // Autorotation (iOS < 6.0) - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return UIInterfaceOrientationIsLandscape(interfaceOrientation); } // Autorotation (iOS >= 6.0) - (BOOL)shouldAutorotate { return YES; } // Autorotation (iOS >= 6.0) - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; } @end
  • 23. Game Loop [self scheduleUpdate]; - (void) update:(ccTime)delta { }
  • 24. Colisiones boundingBox CGRectIntersectsRect(self.player.boundingBox, self.ball.boundingBox)
  • 26. ¿Y ahora qué? Transiciones Game Loop TexturePacker Sprite Batching Bitmap Fonts Game Objects Menús Sprite Sheets ARC con CCSprite iPhone 5 Multiple Layers Texture Atlas Retina Devices Scrolling Sprite Animations Glyph Designer Audio Acelerómetro iPad Máquinas de estado
  • 27. ¿Y ahora qué? www.cocos2d-iphone.org/api-ref/2.0.0/ www.cocos2d-iphone.org/wiki/doku.php/ Learn cocos2d 2 - Apress Learning Cocos2D - Addison-Wesley github.com/albertogonzalez/cocos2d-iphone-helloworld github.com/albertogonzalez/cocos2d-iphone-blocks Probar, probar, probar...
  • 28. AGBO Training cursos@agbo.biz http://agbo.biz/category/tech/cocos2d/