SlideShare une entreprise Scribd logo
1  sur  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/

Contenu connexe

En vedette

Episodio de pentesting
Episodio de pentestingEpisodio de pentesting
Episodio de pentesting
akencito
 
Review baroque thru neoclassicism
Review baroque thru neoclassicismReview baroque thru neoclassicism
Review baroque thru neoclassicism
addierprice
 
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
ISTE
 
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
Abhishek Sutrave
 

En vedette (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...
 

Similaire à 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 Cocos2D
creagamers
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDK
Fe
 
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
 

Similaire à 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
 

Dernier

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Dernier (11)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
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.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
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...
 
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
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.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/