SlideShare una empresa de Scribd logo
1 de 48
Introducción a Cocos2D

Sofía Swidarowicz Andrade
AGENDA
1.- Acerca de MediaNet Software
2.- Generalidades Cocos2D
3.- ¿Cómo se estructura?
4.- Características
5.- Cocos2D y tipos de plataformas
6.- Demo
7.- Conclusiones
                                 Sofía Swidarowicz   2
                                 MediaNet Software
Un poco de mí
• Licenciada en Informática
• Master en Ing Multimedia

             Desarrollado serious games, y minijuegos e
             interactivos en cocos2D.



                                      Sofía Swidarowicz
                                      MediaNet Software
1.- Acerca de MediaNet Software
EMPRESA ESPAÑOLA

FUNDADA EN 1995

TRAYECTORIA DE SPIN-OFFS Y
START-UPS


                             Sofía Swidarowicz
                             MediaNet Software
PERFIL DE EMPRESA:


ARTESANÍA:
CONOCIMIENTO +
EXPERIENCIA          http://www.flickr.com/photos/24443965@N08/

                                           Sofía Swidarowicz
                                           MediaNet Software
UNA CULTURA BASADA EN
LA INNOVACIÓN

UN ENFOQUE CENTRADO
EN EL PROYECTO

                        Sofía Swidarowicz
                        MediaNet Software
18/03/12                                       194 Medianos - Google Maps




PERFIL DE EMPRESA:


MÁS DE 200
ESPECIALISTAS
                                                                                                               ©2012 Google -

                                194 Medianos
                                Publicación restringida · 68 vistas
                                Creado el 12 de Mar · Por · Actualizado hace 2 días
                                                                                           Sofía Swidarowicz
                                                                                           MediaNet Software
                                Argentina - Comodoro Rivadavia
NUESTRA FÓRMULA:


COMPROMISO
VISIÓN A LARGO PLAZO
EQUIPO
                       Sofía Swidarowicz
                       MediaNet Software
Estrategia IT
                    Oficina de Proyectos
                         Consultoría
                    Desarrollo a medida
¿QUÉ HACEMOS?
                        Implantación
NUESTRAS ÁREAS DE   Asistencia técnica in situ
ACTIVIDAD

                        Sofía Swidarowicz
                        MediaNet Software
Y SOBRE TODO:


LAS PERSONAS SON
SIEMPRE LO PRIMERO

                     Sofía Swidarowicz
                     MediaNet Software
2.- Generalidades




Framework App Multimedia y
     Juegos 2D iPhone
                       Sofía Swidarowicz   12
                       MediaNet Software
2.1- ¿Por qué Cocos2D for iPhone?



               Approves!

   • Flexibilidad  Librerías en C, etc
   • Fácil de usar

                                   Sofía Swidarowicz   13
                                   MediaNet Software
2.1- ¿Por qué Cocos2D for iPhone?


Enlace a video:       Ver en youtube

                  http://youtu.be/hvDCmKaJPak




                                           Sofía Swidarowicz   14
                                           MediaNet Software
2.1- ¿Por qué Cocos2D for iPhone?

    Tutoriales



                 Comunida
                 d       Sofía Swidarowicz
                         MediaNet Software
                                             15
2.1- ¿Por qué Cocos2D for iPhone?




                           Sir Benfro’s Brilliant Ballon

SketchShare
              Tiny Tower



                                      Sofía Swidarowicz    16
                                      MediaNet Software
3.- ¿Cómo se estructura?
Escenas (CCScene)

       Menu     Nivel 1     FIN



               Puntuación



                            Sofía Swidarowicz   17
                            MediaNet Software
3.- ¿Cómo se estructura?
  Escenas (CCScene)




Copyright: Nintendo




                                           Sofía Swidarowicz   18
                                           MediaNet Software
3.- ¿Cómo se estructura?
Capas (CCLayer)



            HUD Layer




                          Sofía Swidarowicz   19
                          MediaNet Software
3.- ¿Cómo se estructura?
Nodos (CCNode)

 •   Layer
 •   Scene
 •   Sprites
 •   Label
 •   Color



                              Sofía Swidarowicz   20
                              MediaNet Software
3.- ¿Cómo se estructura?
Director (CCDirector)

 • Decide cuando y cómo se ejecutan las
 escenas.
 • Controla la ventana principal
 • Se coloca siempre al inicio de una escena



                                  Sofía Swidarowicz   21
                                  MediaNet Software
4.- Características
Librerías Físicas




      Chipmunk                Box2D


                                  Sofía Swidarowicz   22
                                  MediaNet Software
3.- Características
Efectos




                                Sofía Swidarowicz   23
                                MediaNet Software
4.- Características
                        Parallax Scroll
Partículas
Particle Desginer

                     Eje                        Eje
                      Eje




                                   Sofía Swidarowicz   25
                                   MediaNet Software
4.- Características
Sprites

               Refrescante..pero no.




                                  Sofía Swidarowicz   26
                                  MediaNet Software
4.- Características
 Sprites
• Un tipo de mapa de bits  hardware
especializado
• Utilizados para generar animaciones
• Son usados en videojuegos y apps 2D
• Mortal Kombat  fotografiaban actores
para hacer cada animación de los
personajes




                                          Sofía Swidarowicz   27
                                          MediaNet Software
4.- Características
Sprites
Cocos2d usa OpenGL, un framework
3D, empleado para crear
juegos/aplicaciones 2D.



                                Sofía Swidarowicz   28
                                MediaNet Software
4.- Características
Uso de Sprites en Cocos2D
SpriteSheet  ahorro memoria,carga solo una vez en
caché
Herramientas
• Zwoptex
• Sprite Helper
• Sprite Packer
• Image Magick
• Sprite Master
• Texture Packer
                                          Sofía Swidarowicz   29
                                          MediaNet Software
4.- Características

Librerías Audio
• CocosDenshion  motor de audio de baja latencia
• Deriba del japonés “Sonidos Electrónicos” y Cocos


Formatos
  • Mp3, m4a, Wav  compresión deseada vs peso


                                      Sofía Swidarowicz   30
                                      MediaNet Software
4.- Características
         ¿Cómo usar CocosDenshion?
                 Simple Audio Engine



    CD Sound Engine                 CD Audio Manager
• Hasta 32 pistas multiples   • Pistas de larga duración múltiple
• iOS 2.1.x o mayor           • Se identifica por un ID en vez del
                              nombre de archivo.




                                                 Sofía Swidarowicz   31
                                                 MediaNet Software
5.- Cocos2D y Plataformas
LevelHelper        Kobol2D




                         Sofía Swidarowicz   32
                         MediaNet Software
5.- Cocos2D y Plataformas
     CocosBuilder Beta




                         Sofía Swidarowicz   33
                         MediaNet Software
5.- Cocos2D y Plataformas
Cocos2D for Android
http://code.google.com/p/cocos2d-android/

Cocos2D for HTML5 JavaScript
http://cocos2d-javascript.org/tutorials/breakout-clone-tutorial-part-1

Cocos2DX Multiplataforma Android/Windows Phone

                     http://www.cocos2d-x.org/




                                                   Sofía Swidarowicz   34
                                                   MediaNet Software
Enlaces de Interés
Cocos2D Página Oficial:         Foros:
http://www.cocos2d-iphone.org   http://www.cocos2d-iphone.org/forum/
                                http://www.raywenderlich.com/forums/
Tutoriales de Ray Wenderlich:
http://www.raywenderlich.com    Instalación Cocos2D:
/                               http://phyline.com/blog/2011/12/inst
                                alacion-de-cocos2d/




                                                  Sofía Swidarowicz    35
                                                  MediaNet Software
6.- Demo
1.   Instalación plantillas Cocos2D
2.   Hola Mundo
3.   Añadir y Mostrar un Sprite en una escena
4.   Editar Sprite Sheets
5.   Añadir y Mostrar el contenido de un sprite sheet
6.   Animar un Sprite
7.   Mover un Sprite
8.   Uso de Labels como puntuación




                                                    Sofía Swidarowicz   36
                                                    MediaNet Software
Código
En el .h se coloca
 // HelloWorldLayer
 @interface HelloWorldLayer : CCLayer
 {
    CCSprite * vspriteFromSheet;
    CCSpriteBatchNode *vBatchNode;

     CCAction *vwalkAction;
     CCLabelTTF *scoreLabel;

     CCAction *vmoveAction;
     BOOL vmoving;
     int moves;
 }

 @property (nonatomic, retain) CCSprite *spriteFromSheet;
 @property (nonatomic, retain) CCAction *walkAction;
 @property (nonatomic, retain) CCAction *moveAction;

 // returns a CCScene that contains the HelloWorldLayer as the only child
 +(CCScene *) scene;

 @end


                                                                            Sofía Swidarowicz   38
                                                                            MediaNet Software
En el .m dentro del init se coloca
 Background
//1 Instanciar la clase CGSize para obtener el tamaño de pantalla
  CGSize size = [[CCDirector sharedDirector] winSize];

//1.1 Insertar Background
  CCSprite *background = [CCSprite spriteWithFile:@"backgroundRetina.png"];
      background.anchorPoint = CGPointZero;
      [self addChild:background];


   Sprites
     //1.3 Instanciando un sprite, ubicándolo en un lugar determinado en pantalla y añadiendolo al
    self como hijo.
       CCSprite *sprite = [CCSprite spriteWithFile:@"bug.png"];
       sprite.position = ccp( size.width/2 , size.height/2);
       [self addChild:sprite];


                                                                                   Sofía Swidarowicz   39
                                                                                   MediaNet Software
Sprites
//2 Usando el SpriteSheet.
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"NCat.plist"];

CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"NCat.png"];
   [self addChild:spriteSheet];

 //2.1 usando uno de los sprites del spritesheet
 self.spriteFromSheet = [CCSprite spriteWithSpriteFrameName:@"capatostada1.png"];
 vspriteFromSheet.position = ccp(size.width * 0.1, size.height * 0.5);
 [spriteSheet addChild:vspriteFromSheet];




                                                                          Sofía Swidarowicz   40
                                                                          MediaNet Software
Animación de Sprites
//3 animando los sprites. Se crea un array y se llena con los sprites
  NSMutableArray *walkAnimFrames = [NSMutableArray array];
  for(int i = 1; i <= 12; ++i) {
    [walkAnimFrames addObject:
    [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
    [NSString stringWithFormat:@"capa%d.png", i]]];
   }

  //3.1 animando los sprites
  CCAnimation *walkAnim = [CCAnimation animationWithFrames:walkAnimFrames delay:0.1f];
  self.walkAction = [CCRepeatForever actionWithAction:
                         [CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:NO]];

  [vBatchNode addChild:vspriteFromSheet z:-1];
  [vspriteFromSheet runAction:vwalkAction];



                                                                            Sofía Swidarowicz   41
                                                                            MediaNet Software
Labels
//4 label

CCLabelTTF *labelPuntos = [CCLabelTTF labelWithString:@"Movimientos" fontName:@"Helvetica"
fontSize:24];

labelPuntos.position = ccp(100,300);
[self addChild:labelPuntos];


 //4.1 Label que muestra el la suma de movimientos realizados
 moves = 0;
 scoreLabel = [CCLabelTTF labelWithString:@"0" fontName:@"Helvetica" fontSize:24];
 scoreLabel.position = ccp(190, 300);
 [self addChild:scoreLabel z:1];




                                                                            Sofía Swidarowicz   42
                                                                            MediaNet Software
Activación Touch
    //activamos el touch
    self.isTouchEnabled = YES;




Método que suma movimientos
//4.1 método de movimientos
-(void)sumaMovimientos{
    moves = moves +1;
   [scoreLabel setString:[NSString stringWithFormat:@"%i", moves]];

}




                                                                      Sofía Swidarowicz   43
                                                                      MediaNet Software
Método que calcula el movimiento de los sprites del spritesheet
//5 moviendo el sprite
-(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {

  CGPoint touchLocation = [touch locationInView: [touch view]];
  touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation];
  touchLocation = [self convertToNodeSpace:touchLocation];

//Para que el gato se mueva por el ancho de la pantalla del iPhone (480 pixels), estimamos 3 seg
// V = d/t 480 pixeles / 3 seg
   float catVelocity = 480.0/3.0;

 // se calcula la posición del toque y del gato, para luego obtener la diferencia entre ambos. Es lo
     // que se tendrá que mover el gato al punto del touch
     CGPoint moveDifference = ccpSub(touchLocation, vspriteFromSheet.position);

   //Se calcula la distancia real en la que ha movido el gato en una línea recta. Una hipotenusa que ya calcula
   // ccpLenght emplean o la diferencia de posición obtenida entre el punto a y b (el gato con el touch)
   float distanceToMove = ccpLength(moveDifference);




                                                                                                 Sofía Swidarowicz   44
                                                                                                 MediaNet Software
Método que calcula el movimiento de los sprites del spritesheet
//Lo que durará el gato en movimiento al trasladarse. Lo obtenido del calculo de la hipotenusa, lo que debe
//moverse en realidad sobre la velocidad (pix / seg)
   float moveDuration = distanceToMove / catVelocity;



 //Ahora se debe saber si el gato se debe mover a la izq o a la derecha. Si es menor a cero debe voltearse.
 //Como Nyan Cat está mirando a la derecha, pues si es >0 se queda como está, sino debe voltearse para que mire a    //la izq.
 De este modo COCOS2D nos facilita la tarea de no tener que crear varios sprites (uno mirando para un         //lado y otro
 mirando para el contrario)
    if (moveDifference.x > 0) {
        vspriteFromSheet.flipX = NO;
    } else {
        vspriteFromSheet.flipX = YES;
    }




                                                                                               Sofía Swidarowicz           45
                                                                                               MediaNet Software
Método que calcula el movimiento de los sprites del spritesheet

//Hacemos que el sprite detenga la acción de movimiento o de animación, debemos anular cualquier comando
  //que ya existiera activo ya que no pueden ejecutarse una acción y hacer la llamada a una nueva.
  [vspriteFromSheet stopAction:vmoveAction];
  [vspriteFromSheet stopAction:vwalkAction];

 //Le indicamos que se mueva al lugar que hemos calculado, proveniente del touch
 if (!vmoving) {
     [vspriteFromSheet runAction:vwalkAction];
 }




                                                                                        Sofía Swidarowicz   46
                                                                                        MediaNet Software
Método que calcula el movimiento de los sprites del spritesheet

 self.moveAction = [CCSequence actions:
               [CCMoveTo actionWithDuration:moveDuration position:touchLocation],
               [CCCallFunc actionWithTarget:self selector:@selector(catMoveEnded)],
               nil];

 [vspriteFromSheet runAction:vmoveAction];
  vmoving = TRUE;

 //Hacemos la llamada al método que suma los movimientos, lo hacemos aquí para que vaya contando cada touch.
    [self sumaMovimientos];

 }




                                                                                        Sofía Swidarowicz      47
                                                                                        MediaNet Software
Método para calcular el touch
-(void) registerWithTouchDispatcher
{
   [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0
                             swallowsTouches:YES];
}
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
       return YES;
}



Método para detener las acciones de movimiento y animación
 //6 deteniendo el movimiento del sprite por pantalla
 -(void)catMoveEnded {
    [vspriteFromSheet stopAction:vwalkAction];
    [vspriteFromSheet runAction:vwalkAction];
    vmoving = FALSE;
 }


                                                                               Sofía Swidarowicz   48
                                                                               MediaNet Software
Gracias
Sofía Swidarowicz
www.phyline.com
    @phynet
     phyonline@gmail.com

Más contenido relacionado

Similar a Introducción a Cocos2D: Evento Codemotion

Desafío educar nativos
Desafío educar nativosDesafío educar nativos
Desafío educar nativosrsob
 
075 tecnologias involucradas-en_ciclo_de_desarrollo_para_smart_devices
075 tecnologias involucradas-en_ciclo_de_desarrollo_para_smart_devices075 tecnologias involucradas-en_ciclo_de_desarrollo_para_smart_devices
075 tecnologias involucradas-en_ciclo_de_desarrollo_para_smart_devicesGeneXus
 
GameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de VideojuegosGameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de VideojuegosJavier_J
 
P01: Kiwibot Basic Shield: Empezamos con Arduino
P01: Kiwibot Basic Shield: Empezamos con ArduinoP01: Kiwibot Basic Shield: Empezamos con Arduino
P01: Kiwibot Basic Shield: Empezamos con ArduinoJosé Pujol Pérez
 
Herramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosHerramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosJavier_J
 
Unity3D para dummies (BcnDevCon 2012)
Unity3D para dummies (BcnDevCon 2012)Unity3D para dummies (BcnDevCon 2012)
Unity3D para dummies (BcnDevCon 2012)Eduard Tomàs
 
Herramientas para publicar en internet
Herramientas para publicar en internetHerramientas para publicar en internet
Herramientas para publicar en internetAida March
 
Clase 3 de PowerPoint
Clase 3 de PowerPointClase 3 de PowerPoint
Clase 3 de PowerPointLordalZero
 
Revista digital
Revista digitalRevista digital
Revista digitallara3210
 
Documento A4 Portada Carátula Trabajo Proyecto Marketing Doodle Marrón y Blan...
Documento A4 Portada Carátula Trabajo Proyecto Marketing Doodle Marrón y Blan...Documento A4 Portada Carátula Trabajo Proyecto Marketing Doodle Marrón y Blan...
Documento A4 Portada Carátula Trabajo Proyecto Marketing Doodle Marrón y Blan...amoralestoapanta
 
Live code manual Español
Live code manual EspañolLive code manual Español
Live code manual EspañolSykrayo
 
Tema 4.2.1 Desarrollo con Android. Instalación.
Tema 4.2.1 Desarrollo con Android. Instalación.Tema 4.2.1 Desarrollo con Android. Instalación.
Tema 4.2.1 Desarrollo con Android. Instalación.Carlos A. Iglesias
 
Manual M2 Sm2 InformáTica
Manual M2 Sm2 InformáTicaManual M2 Sm2 InformáTica
Manual M2 Sm2 InformáTicaguest141c75
 

Similar a Introducción a Cocos2D: Evento Codemotion (20)

Desafío educar nativos
Desafío educar nativosDesafío educar nativos
Desafío educar nativos
 
Eduar enrique 10 2
Eduar enrique 10 2Eduar enrique 10 2
Eduar enrique 10 2
 
075 tecnologias involucradas-en_ciclo_de_desarrollo_para_smart_devices
075 tecnologias involucradas-en_ciclo_de_desarrollo_para_smart_devices075 tecnologias involucradas-en_ciclo_de_desarrollo_para_smart_devices
075 tecnologias involucradas-en_ciclo_de_desarrollo_para_smart_devices
 
GameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de VideojuegosGameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de Videojuegos
 
Netduino
NetduinoNetduino
Netduino
 
P01: Kiwibot Basic Shield: Empezamos con Arduino
P01: Kiwibot Basic Shield: Empezamos con ArduinoP01: Kiwibot Basic Shield: Empezamos con Arduino
P01: Kiwibot Basic Shield: Empezamos con Arduino
 
Programación básica de videojuegos en 2 d para ios
Programación básica de videojuegos en 2 d para iosProgramación básica de videojuegos en 2 d para ios
Programación básica de videojuegos en 2 d para ios
 
Herramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosHerramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de Videojuegos
 
Unity3D para dummies (BcnDevCon 2012)
Unity3D para dummies (BcnDevCon 2012)Unity3D para dummies (BcnDevCon 2012)
Unity3D para dummies (BcnDevCon 2012)
 
Clase 01 - Modelado digital
Clase 01 - Modelado digitalClase 01 - Modelado digital
Clase 01 - Modelado digital
 
Herramientas para publicar en internet
Herramientas para publicar en internetHerramientas para publicar en internet
Herramientas para publicar en internet
 
Presentacion Trabajo1
Presentacion Trabajo1Presentacion Trabajo1
Presentacion Trabajo1
 
Multimedia
MultimediaMultimedia
Multimedia
 
Clase 3 de PowerPoint
Clase 3 de PowerPointClase 3 de PowerPoint
Clase 3 de PowerPoint
 
Revista digital
Revista digitalRevista digital
Revista digital
 
Ficha Curso de Producción Básica de Videojuegos
Ficha Curso de Producción Básica de VideojuegosFicha Curso de Producción Básica de Videojuegos
Ficha Curso de Producción Básica de Videojuegos
 
Documento A4 Portada Carátula Trabajo Proyecto Marketing Doodle Marrón y Blan...
Documento A4 Portada Carátula Trabajo Proyecto Marketing Doodle Marrón y Blan...Documento A4 Portada Carátula Trabajo Proyecto Marketing Doodle Marrón y Blan...
Documento A4 Portada Carátula Trabajo Proyecto Marketing Doodle Marrón y Blan...
 
Live code manual Español
Live code manual EspañolLive code manual Español
Live code manual Español
 
Tema 4.2.1 Desarrollo con Android. Instalación.
Tema 4.2.1 Desarrollo con Android. Instalación.Tema 4.2.1 Desarrollo con Android. Instalación.
Tema 4.2.1 Desarrollo con Android. Instalación.
 
Manual M2 Sm2 InformáTica
Manual M2 Sm2 InformáTicaManual M2 Sm2 InformáTica
Manual M2 Sm2 InformáTica
 

Último

Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 

Último (20)

Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 

Introducción a Cocos2D: Evento Codemotion

  • 1. Introducción a Cocos2D Sofía Swidarowicz Andrade
  • 2. AGENDA 1.- Acerca de MediaNet Software 2.- Generalidades Cocos2D 3.- ¿Cómo se estructura? 4.- Características 5.- Cocos2D y tipos de plataformas 6.- Demo 7.- Conclusiones Sofía Swidarowicz 2 MediaNet Software
  • 3. Un poco de mí • Licenciada en Informática • Master en Ing Multimedia Desarrollado serious games, y minijuegos e interactivos en cocos2D. Sofía Swidarowicz MediaNet Software
  • 4. 1.- Acerca de MediaNet Software
  • 5. EMPRESA ESPAÑOLA FUNDADA EN 1995 TRAYECTORIA DE SPIN-OFFS Y START-UPS Sofía Swidarowicz MediaNet Software
  • 6. PERFIL DE EMPRESA: ARTESANÍA: CONOCIMIENTO + EXPERIENCIA http://www.flickr.com/photos/24443965@N08/ Sofía Swidarowicz MediaNet Software
  • 7. UNA CULTURA BASADA EN LA INNOVACIÓN UN ENFOQUE CENTRADO EN EL PROYECTO Sofía Swidarowicz MediaNet Software
  • 8. 18/03/12 194 Medianos - Google Maps PERFIL DE EMPRESA: MÁS DE 200 ESPECIALISTAS ©2012 Google - 194 Medianos Publicación restringida · 68 vistas Creado el 12 de Mar · Por · Actualizado hace 2 días Sofía Swidarowicz MediaNet Software Argentina - Comodoro Rivadavia
  • 9. NUESTRA FÓRMULA: COMPROMISO VISIÓN A LARGO PLAZO EQUIPO Sofía Swidarowicz MediaNet Software
  • 10. Estrategia IT Oficina de Proyectos Consultoría Desarrollo a medida ¿QUÉ HACEMOS? Implantación NUESTRAS ÁREAS DE Asistencia técnica in situ ACTIVIDAD Sofía Swidarowicz MediaNet Software
  • 11. Y SOBRE TODO: LAS PERSONAS SON SIEMPRE LO PRIMERO Sofía Swidarowicz MediaNet Software
  • 12. 2.- Generalidades Framework App Multimedia y Juegos 2D iPhone Sofía Swidarowicz 12 MediaNet Software
  • 13. 2.1- ¿Por qué Cocos2D for iPhone? Approves! • Flexibilidad  Librerías en C, etc • Fácil de usar Sofía Swidarowicz 13 MediaNet Software
  • 14. 2.1- ¿Por qué Cocos2D for iPhone? Enlace a video: Ver en youtube http://youtu.be/hvDCmKaJPak Sofía Swidarowicz 14 MediaNet Software
  • 15. 2.1- ¿Por qué Cocos2D for iPhone? Tutoriales Comunida d Sofía Swidarowicz MediaNet Software 15
  • 16. 2.1- ¿Por qué Cocos2D for iPhone? Sir Benfro’s Brilliant Ballon SketchShare Tiny Tower Sofía Swidarowicz 16 MediaNet Software
  • 17. 3.- ¿Cómo se estructura? Escenas (CCScene) Menu Nivel 1 FIN Puntuación Sofía Swidarowicz 17 MediaNet Software
  • 18. 3.- ¿Cómo se estructura? Escenas (CCScene) Copyright: Nintendo Sofía Swidarowicz 18 MediaNet Software
  • 19. 3.- ¿Cómo se estructura? Capas (CCLayer) HUD Layer Sofía Swidarowicz 19 MediaNet Software
  • 20. 3.- ¿Cómo se estructura? Nodos (CCNode) • Layer • Scene • Sprites • Label • Color Sofía Swidarowicz 20 MediaNet Software
  • 21. 3.- ¿Cómo se estructura? Director (CCDirector) • Decide cuando y cómo se ejecutan las escenas. • Controla la ventana principal • Se coloca siempre al inicio de una escena Sofía Swidarowicz 21 MediaNet Software
  • 22. 4.- Características Librerías Físicas Chipmunk Box2D Sofía Swidarowicz 22 MediaNet Software
  • 23. 3.- Características Efectos Sofía Swidarowicz 23 MediaNet Software
  • 24. 4.- Características Parallax Scroll Partículas Particle Desginer Eje Eje Eje Sofía Swidarowicz 25 MediaNet Software
  • 25. 4.- Características Sprites Refrescante..pero no. Sofía Swidarowicz 26 MediaNet Software
  • 26. 4.- Características Sprites • Un tipo de mapa de bits  hardware especializado • Utilizados para generar animaciones • Son usados en videojuegos y apps 2D • Mortal Kombat  fotografiaban actores para hacer cada animación de los personajes Sofía Swidarowicz 27 MediaNet Software
  • 27. 4.- Características Sprites Cocos2d usa OpenGL, un framework 3D, empleado para crear juegos/aplicaciones 2D. Sofía Swidarowicz 28 MediaNet Software
  • 28. 4.- Características Uso de Sprites en Cocos2D SpriteSheet  ahorro memoria,carga solo una vez en caché Herramientas • Zwoptex • Sprite Helper • Sprite Packer • Image Magick • Sprite Master • Texture Packer Sofía Swidarowicz 29 MediaNet Software
  • 29. 4.- Características Librerías Audio • CocosDenshion  motor de audio de baja latencia • Deriba del japonés “Sonidos Electrónicos” y Cocos Formatos • Mp3, m4a, Wav  compresión deseada vs peso Sofía Swidarowicz 30 MediaNet Software
  • 30. 4.- Características ¿Cómo usar CocosDenshion? Simple Audio Engine CD Sound Engine CD Audio Manager • Hasta 32 pistas multiples • Pistas de larga duración múltiple • iOS 2.1.x o mayor • Se identifica por un ID en vez del nombre de archivo. Sofía Swidarowicz 31 MediaNet Software
  • 31. 5.- Cocos2D y Plataformas LevelHelper Kobol2D Sofía Swidarowicz 32 MediaNet Software
  • 32. 5.- Cocos2D y Plataformas CocosBuilder Beta Sofía Swidarowicz 33 MediaNet Software
  • 33. 5.- Cocos2D y Plataformas Cocos2D for Android http://code.google.com/p/cocos2d-android/ Cocos2D for HTML5 JavaScript http://cocos2d-javascript.org/tutorials/breakout-clone-tutorial-part-1 Cocos2DX Multiplataforma Android/Windows Phone http://www.cocos2d-x.org/ Sofía Swidarowicz 34 MediaNet Software
  • 34. Enlaces de Interés Cocos2D Página Oficial: Foros: http://www.cocos2d-iphone.org http://www.cocos2d-iphone.org/forum/ http://www.raywenderlich.com/forums/ Tutoriales de Ray Wenderlich: http://www.raywenderlich.com Instalación Cocos2D: / http://phyline.com/blog/2011/12/inst alacion-de-cocos2d/ Sofía Swidarowicz 35 MediaNet Software
  • 35. 6.- Demo 1. Instalación plantillas Cocos2D 2. Hola Mundo 3. Añadir y Mostrar un Sprite en una escena 4. Editar Sprite Sheets 5. Añadir y Mostrar el contenido de un sprite sheet 6. Animar un Sprite 7. Mover un Sprite 8. Uso de Labels como puntuación Sofía Swidarowicz 36 MediaNet Software
  • 37. En el .h se coloca // HelloWorldLayer @interface HelloWorldLayer : CCLayer { CCSprite * vspriteFromSheet; CCSpriteBatchNode *vBatchNode; CCAction *vwalkAction; CCLabelTTF *scoreLabel; CCAction *vmoveAction; BOOL vmoving; int moves; } @property (nonatomic, retain) CCSprite *spriteFromSheet; @property (nonatomic, retain) CCAction *walkAction; @property (nonatomic, retain) CCAction *moveAction; // returns a CCScene that contains the HelloWorldLayer as the only child +(CCScene *) scene; @end Sofía Swidarowicz 38 MediaNet Software
  • 38. En el .m dentro del init se coloca Background //1 Instanciar la clase CGSize para obtener el tamaño de pantalla CGSize size = [[CCDirector sharedDirector] winSize]; //1.1 Insertar Background CCSprite *background = [CCSprite spriteWithFile:@"backgroundRetina.png"]; background.anchorPoint = CGPointZero; [self addChild:background]; Sprites //1.3 Instanciando un sprite, ubicándolo en un lugar determinado en pantalla y añadiendolo al self como hijo. CCSprite *sprite = [CCSprite spriteWithFile:@"bug.png"]; sprite.position = ccp( size.width/2 , size.height/2); [self addChild:sprite]; Sofía Swidarowicz 39 MediaNet Software
  • 39. Sprites //2 Usando el SpriteSheet. [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"NCat.plist"]; CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"NCat.png"]; [self addChild:spriteSheet]; //2.1 usando uno de los sprites del spritesheet self.spriteFromSheet = [CCSprite spriteWithSpriteFrameName:@"capatostada1.png"]; vspriteFromSheet.position = ccp(size.width * 0.1, size.height * 0.5); [spriteSheet addChild:vspriteFromSheet]; Sofía Swidarowicz 40 MediaNet Software
  • 40. Animación de Sprites //3 animando los sprites. Se crea un array y se llena con los sprites NSMutableArray *walkAnimFrames = [NSMutableArray array]; for(int i = 1; i <= 12; ++i) { [walkAnimFrames addObject: [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName: [NSString stringWithFormat:@"capa%d.png", i]]]; } //3.1 animando los sprites CCAnimation *walkAnim = [CCAnimation animationWithFrames:walkAnimFrames delay:0.1f]; self.walkAction = [CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:NO]]; [vBatchNode addChild:vspriteFromSheet z:-1]; [vspriteFromSheet runAction:vwalkAction]; Sofía Swidarowicz 41 MediaNet Software
  • 41. Labels //4 label CCLabelTTF *labelPuntos = [CCLabelTTF labelWithString:@"Movimientos" fontName:@"Helvetica" fontSize:24]; labelPuntos.position = ccp(100,300); [self addChild:labelPuntos]; //4.1 Label que muestra el la suma de movimientos realizados moves = 0; scoreLabel = [CCLabelTTF labelWithString:@"0" fontName:@"Helvetica" fontSize:24]; scoreLabel.position = ccp(190, 300); [self addChild:scoreLabel z:1]; Sofía Swidarowicz 42 MediaNet Software
  • 42. Activación Touch //activamos el touch self.isTouchEnabled = YES; Método que suma movimientos //4.1 método de movimientos -(void)sumaMovimientos{ moves = moves +1; [scoreLabel setString:[NSString stringWithFormat:@"%i", moves]]; } Sofía Swidarowicz 43 MediaNet Software
  • 43. Método que calcula el movimiento de los sprites del spritesheet //5 moviendo el sprite -(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event { CGPoint touchLocation = [touch locationInView: [touch view]]; touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation]; touchLocation = [self convertToNodeSpace:touchLocation]; //Para que el gato se mueva por el ancho de la pantalla del iPhone (480 pixels), estimamos 3 seg // V = d/t 480 pixeles / 3 seg float catVelocity = 480.0/3.0; // se calcula la posición del toque y del gato, para luego obtener la diferencia entre ambos. Es lo // que se tendrá que mover el gato al punto del touch CGPoint moveDifference = ccpSub(touchLocation, vspriteFromSheet.position); //Se calcula la distancia real en la que ha movido el gato en una línea recta. Una hipotenusa que ya calcula // ccpLenght emplean o la diferencia de posición obtenida entre el punto a y b (el gato con el touch) float distanceToMove = ccpLength(moveDifference); Sofía Swidarowicz 44 MediaNet Software
  • 44. Método que calcula el movimiento de los sprites del spritesheet //Lo que durará el gato en movimiento al trasladarse. Lo obtenido del calculo de la hipotenusa, lo que debe //moverse en realidad sobre la velocidad (pix / seg) float moveDuration = distanceToMove / catVelocity; //Ahora se debe saber si el gato se debe mover a la izq o a la derecha. Si es menor a cero debe voltearse. //Como Nyan Cat está mirando a la derecha, pues si es >0 se queda como está, sino debe voltearse para que mire a //la izq. De este modo COCOS2D nos facilita la tarea de no tener que crear varios sprites (uno mirando para un //lado y otro mirando para el contrario) if (moveDifference.x > 0) { vspriteFromSheet.flipX = NO; } else { vspriteFromSheet.flipX = YES; } Sofía Swidarowicz 45 MediaNet Software
  • 45. Método que calcula el movimiento de los sprites del spritesheet //Hacemos que el sprite detenga la acción de movimiento o de animación, debemos anular cualquier comando //que ya existiera activo ya que no pueden ejecutarse una acción y hacer la llamada a una nueva. [vspriteFromSheet stopAction:vmoveAction]; [vspriteFromSheet stopAction:vwalkAction]; //Le indicamos que se mueva al lugar que hemos calculado, proveniente del touch if (!vmoving) { [vspriteFromSheet runAction:vwalkAction]; } Sofía Swidarowicz 46 MediaNet Software
  • 46. Método que calcula el movimiento de los sprites del spritesheet self.moveAction = [CCSequence actions: [CCMoveTo actionWithDuration:moveDuration position:touchLocation], [CCCallFunc actionWithTarget:self selector:@selector(catMoveEnded)], nil]; [vspriteFromSheet runAction:vmoveAction]; vmoving = TRUE; //Hacemos la llamada al método que suma los movimientos, lo hacemos aquí para que vaya contando cada touch. [self sumaMovimientos]; } Sofía Swidarowicz 47 MediaNet Software
  • 47. Método para calcular el touch -(void) registerWithTouchDispatcher { [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES]; } -(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event { return YES; } Método para detener las acciones de movimiento y animación //6 deteniendo el movimiento del sprite por pantalla -(void)catMoveEnded { [vspriteFromSheet stopAction:vwalkAction]; [vspriteFromSheet runAction:vwalkAction]; vmoving = FALSE; } Sofía Swidarowicz 48 MediaNet Software
  • 48. Gracias Sofía Swidarowicz www.phyline.com @phynet phyonline@gmail.com