SlideShare una empresa de Scribd logo
1 de 23

Greenfoot & Kinect
Eduardo H. Calvillo Gámez
Primeros Pasos

 Configurar Greenfoot para que se comunique con
   Kinect
    http://www.greenfoot.org/doc/kinect/index.html

 Ejecutar kinectserver y dejarlo corriendo mientras
   se compila y ejecuta el programa
Primeros Pasos

 Obtener el escenario básico para Kinect
    Clase KinectWorld – subclase de World
    Clases
        Joint
        KinectClient
        Point3D
        UserData
    ZIP en página web del curso

 O agregar manualmente cada clase
Clases
   Revisar API
           Doble clic sobre clase
           Cambiar a ver documentación

   KinectWorld
           Métodos para que nuestro mundo pueda interactuar con Kinect

   Joint
           Clase para identificar coyunturas del esqueleto

   KinectClient
           Realiza la interacción entre Kinect y Greenfoot

   Point3D
           Un punto en 3D

   UserData
           Clase que almanacena los datos del usuario frente a la cámara

Ejercicio 1
Utilizando la cámara
Lo Básico

 Necesitamos obtener lo que este monitoreando la
   cámara y desplegarlo en el mundo

 Revisando la API de Greenfoot básica, necesitamos
   una imagen para desplegar en el mundo.

 Clase KinectWorld
    Método getThumbnail()
Instrucciones
   Crear un escenario nuevo
        Kinect1

   Crear una subclase de Actor que se llame “Foto”
        Las clases de tipo Actor son los que aparecen e interactúan en el mundo
        Sin imagen

   Cuando la clase actúe
        Nos traemos la imagen que este captando la cámara
            getWorld().getThumbnail()
            Necesitamos hacer un casting para que el mundo que nos traigamos
             reconozca los métodos de la subclase y no de la clase padre
            ((KinectWorld)getWorld).getThumbnail()
            Y se lo asignamos a una imagen de tipo GreenfootImage
        La asignamos a la clase al Actor
Código

public void act()

{

     GreenfootImage img =
       ((KinectWorld)getWorld()).getThumbnail();

     setImage(img);

 }
Instrucciones (2)

 No interactuamos directamente con la clase
   KinectWorld

 Creamos una subclase
    Kinect1World
       Sin imagen
    Creamos un objeto de tipo Foto
    Agregamos el objeto al centro del mundo
Código (2)

public Kinect1World()

  {

      Foto f = new Foto();

      addObject(f,getWidth()/2,getHeight()/2);

  }

Ejercicio 2
Agregando más actores
Clase Etiqueta (Label)

 Todo lo que aparece en el mundo de greenfoot
   debe de ser una imagen

 El texto lo debemos convertir a una imagen

 La clase Etiqueta, que nosotros tenemos que
   implementar, hace el trabajo
    Disponible por comunidad

 Revisar API de GreenfootImage
    Constructor
Instrucciones

 Crear una subclase de Actor
    Label

 Copiar el código que se muestra a continuación
    Modificar al gusto
Código (3)

 public Label(String text)
{
    setText(text, 20);
}
public void setText(String text, int size){
    setImage(new GreenfootImage(
     text, size,
     java.awt.Color.BLACK,
     new java.awt.Color(0,0,0)));
}
Instrucciones (4)

 En el mundo Kinect1World
    Agregar un objeto de tipo Etiqueta

 Los objetos tienen precedencia en el orden que los
   ponemos en la pantalla como una Pila
    El que ponemos primero, se queda atrás.
Código (4)

Label l = new Label("Hecho por EHCG");

addObject(l, 100,100);
Instrucciones (5)

 Crear una nueva subclase de Actor
   Pingu con la imagen de Tux
   Su única acción es dar vueltas

 Quitar el objeto de tipo Foto del mundo

 Implementar el método act() en Kinect1World

 La primera línea tiene que ser
   super.act();

 para que se actualice el mundo de Kinect
Instrucciones (5.2)

 Cambiar el fondo a negro
   getBackground().setColor(java.awt.Color.BLACK);
   getBackground().fill();

 Agregar objetos de tipo Pingu en posiciones al azar
   int x // contiene un número al azar del tamaño del
     fondo;
   addObject (new Pingu(), x, 100);

 Agregar la silueta del usuario de Kinect
   getCombinedUserImage();
Código (5)

GreenfootImage userImage =
   getCombinedUserImage();

   userImage.scale(getWidth(), getHeight());

   getBackground().drawImage(userImage, 0, 0);
Instrucciones (6)

 Editar Pingu para que se mueva por el mundo

 Agregar una propiedad a Pingu, si es 1 esta vivo, si
   es 0, esta muerto y no se mueve.

 En el Mundo Kinect1World
    Agregar una propiedad privada de tipo imagen,
     donde vamos a guardar la imagen que esta
     detectando el Kinect.
    Asignar un método para obtener la imagen
Instrucciones (6.2)

 Checar si los Pingus chocan con el usuario, si
   chocan, borrarlos.

 El usuario es una imagen, entonces únicamente se
   checa si tenemos alguna intersección

 Y tenemos que checar el alfa del color sea mayor a
   0.
Código (6)

 En act()
    if (!colision(x,y)){
                getWorld().removeObject(this);
            }
Código (6.2)

Kinect1World mundo = (Kinect1World)getWorld();
  GreenfootImage imagenUsuario =
     mundo.getImagenGuardada();
if (imagenUsuario!=null){
      if (
         ix < imagenUsuario.getWidth() &&
         iy < imagenUsuario.getHeight() &&
         imagenUsuario.getColorAt(ix, iy).getAlpha() > 0 )

Más contenido relacionado

Similar a Greenfoot & Kinect

Similar a Greenfoot & Kinect (20)

Xna game studio presentación 05
Xna game studio   presentación 05Xna game studio   presentación 05
Xna game studio presentación 05
 
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
 
Manual y temario unity
Manual y temario unityManual y temario unity
Manual y temario unity
 
Desarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2DDesarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2D
 
leccion 8
leccion 8leccion 8
leccion 8
 
Jf 3 8_sg_esp(2)(3) 8
Jf 3 8_sg_esp(2)(3) 8Jf 3 8_sg_esp(2)(3) 8
Jf 3 8_sg_esp(2)(3) 8
 
CAPITULO 8 DE GREENFOOT
CAPITULO 8 DE GREENFOOTCAPITULO 8 DE GREENFOOT
CAPITULO 8 DE GREENFOOT
 
Capitulo 8
Capitulo 8Capitulo 8
Capitulo 8
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
 
CAPITULO 8 GREENFOOT
CAPITULO 8 GREENFOOTCAPITULO 8 GREENFOOT
CAPITULO 8 GREENFOOT
 
Capitulo 8
Capitulo 8Capitulo 8
Capitulo 8
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
 
Jf 3 8_sg_esp(2)(3)
Jf 3 8_sg_esp(2)(3)Jf 3 8_sg_esp(2)(3)
Jf 3 8_sg_esp(2)(3)
 
Jf 3 8_sg_esp(2)(3)
Jf 3 8_sg_esp(2)(3)Jf 3 8_sg_esp(2)(3)
Jf 3 8_sg_esp(2)(3)
 
Jf 3 8_sg_esp(2)(3)
Jf 3 8_sg_esp(2)(3)Jf 3 8_sg_esp(2)(3)
Jf 3 8_sg_esp(2)(3)
 
Capitulo 8 greenfoot
Capitulo 8  greenfootCapitulo 8  greenfoot
Capitulo 8 greenfoot
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
 
Pra8
Pra8Pra8
Pra8
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
 
Xna game studio presentación 02
Xna game studio   presentación 02Xna game studio   presentación 02
Xna game studio presentación 02
 

Más de Eduardo Calvillo Gamez

Más de Eduardo Calvillo Gamez (18)

Diseño ux
Diseño uxDiseño ux
Diseño ux
 
Diseñando para UX
Diseñando para UXDiseñando para UX
Diseñando para UX
 
Usabilidad: Ejecución y Reporte
Usabilidad: Ejecución y ReporteUsabilidad: Ejecución y Reporte
Usabilidad: Ejecución y Reporte
 
Cómputo Persuasivo (Continuación
Cómputo Persuasivo (ContinuaciónCómputo Persuasivo (Continuación
Cómputo Persuasivo (Continuación
 
Computo Persuasivo
Computo PersuasivoComputo Persuasivo
Computo Persuasivo
 
Tips para Escribir un Reporte de Investigación o DTI
Tips para Escribir un Reporte de Investigación o DTITips para Escribir un Reporte de Investigación o DTI
Tips para Escribir un Reporte de Investigación o DTI
 
Semana10: Intro a la Experienc
Semana10: Intro a la ExperiencSemana10: Intro a la Experienc
Semana10: Intro a la Experienc
 
Semana 7 - Curso de Creatividad
Semana 7 - Curso de CreatividadSemana 7 - Curso de Creatividad
Semana 7 - Curso de Creatividad
 
Semana 8: Introducción a IHC
Semana 8: Introducción a IHCSemana 8: Introducción a IHC
Semana 8: Introducción a IHC
 
Semana4: Creatividad Representación
Semana4: Creatividad RepresentaciónSemana4: Creatividad Representación
Semana4: Creatividad Representación
 
Semana6 - Proyecto de Desarrollo de VG
Semana6 - Proyecto de Desarrollo de VGSemana6 - Proyecto de Desarrollo de VG
Semana6 - Proyecto de Desarrollo de VG
 
Creatividad Semana 3: Técnicas Creativas 2
Creatividad Semana 3: Técnicas Creativas 2Creatividad Semana 3: Técnicas Creativas 2
Creatividad Semana 3: Técnicas Creativas 2
 
Creatividad Semana2
Creatividad Semana2Creatividad Semana2
Creatividad Semana2
 
Programación Orientada a Objetos y Videojuegos
Programación Orientada a Objetos y VideojuegosProgramación Orientada a Objetos y Videojuegos
Programación Orientada a Objetos y Videojuegos
 
Programac
ProgramacProgramac
Programac
 
Creatividad - Semana 1
Creatividad - Semana 1Creatividad - Semana 1
Creatividad - Semana 1
 
De Juegos y Diversion 2.0
De Juegos y Diversion 2.0De Juegos y Diversion 2.0
De Juegos y Diversion 2.0
 
Niveles de Diseño de Foley
Niveles de Diseño de FoleyNiveles de Diseño de Foley
Niveles de Diseño de Foley
 

Último

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
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
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
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
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
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
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
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
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 

Último (20)

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
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...
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
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
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
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...
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 

Greenfoot & Kinect

  • 1.  Greenfoot & Kinect Eduardo H. Calvillo Gámez
  • 2. Primeros Pasos  Configurar Greenfoot para que se comunique con Kinect  http://www.greenfoot.org/doc/kinect/index.html  Ejecutar kinectserver y dejarlo corriendo mientras se compila y ejecuta el programa
  • 3. Primeros Pasos  Obtener el escenario básico para Kinect  Clase KinectWorld – subclase de World  Clases  Joint  KinectClient  Point3D  UserData  ZIP en página web del curso  O agregar manualmente cada clase
  • 4. Clases  Revisar API  Doble clic sobre clase  Cambiar a ver documentación  KinectWorld  Métodos para que nuestro mundo pueda interactuar con Kinect  Joint  Clase para identificar coyunturas del esqueleto  KinectClient  Realiza la interacción entre Kinect y Greenfoot  Point3D  Un punto en 3D  UserData  Clase que almanacena los datos del usuario frente a la cámara
  • 6. Lo Básico  Necesitamos obtener lo que este monitoreando la cámara y desplegarlo en el mundo  Revisando la API de Greenfoot básica, necesitamos una imagen para desplegar en el mundo.  Clase KinectWorld  Método getThumbnail()
  • 7. Instrucciones  Crear un escenario nuevo  Kinect1  Crear una subclase de Actor que se llame “Foto”  Las clases de tipo Actor son los que aparecen e interactúan en el mundo  Sin imagen  Cuando la clase actúe  Nos traemos la imagen que este captando la cámara  getWorld().getThumbnail()  Necesitamos hacer un casting para que el mundo que nos traigamos reconozca los métodos de la subclase y no de la clase padre  ((KinectWorld)getWorld).getThumbnail()  Y se lo asignamos a una imagen de tipo GreenfootImage  La asignamos a la clase al Actor
  • 8. Código public void act() { GreenfootImage img = ((KinectWorld)getWorld()).getThumbnail(); setImage(img); }
  • 9. Instrucciones (2)  No interactuamos directamente con la clase KinectWorld  Creamos una subclase  Kinect1World  Sin imagen  Creamos un objeto de tipo Foto  Agregamos el objeto al centro del mundo
  • 10. Código (2) public Kinect1World() { Foto f = new Foto(); addObject(f,getWidth()/2,getHeight()/2); }
  • 12. Clase Etiqueta (Label)  Todo lo que aparece en el mundo de greenfoot debe de ser una imagen  El texto lo debemos convertir a una imagen  La clase Etiqueta, que nosotros tenemos que implementar, hace el trabajo  Disponible por comunidad  Revisar API de GreenfootImage  Constructor
  • 13. Instrucciones  Crear una subclase de Actor  Label  Copiar el código que se muestra a continuación  Modificar al gusto
  • 14. Código (3) public Label(String text) { setText(text, 20); } public void setText(String text, int size){ setImage(new GreenfootImage( text, size, java.awt.Color.BLACK, new java.awt.Color(0,0,0))); }
  • 15. Instrucciones (4)  En el mundo Kinect1World  Agregar un objeto de tipo Etiqueta  Los objetos tienen precedencia en el orden que los ponemos en la pantalla como una Pila  El que ponemos primero, se queda atrás.
  • 16. Código (4) Label l = new Label("Hecho por EHCG"); addObject(l, 100,100);
  • 17. Instrucciones (5)  Crear una nueva subclase de Actor  Pingu con la imagen de Tux  Su única acción es dar vueltas  Quitar el objeto de tipo Foto del mundo  Implementar el método act() en Kinect1World  La primera línea tiene que ser  super.act();  para que se actualice el mundo de Kinect
  • 18. Instrucciones (5.2)  Cambiar el fondo a negro  getBackground().setColor(java.awt.Color.BLACK);  getBackground().fill();  Agregar objetos de tipo Pingu en posiciones al azar  int x // contiene un número al azar del tamaño del fondo;  addObject (new Pingu(), x, 100);  Agregar la silueta del usuario de Kinect  getCombinedUserImage();
  • 19. Código (5) GreenfootImage userImage = getCombinedUserImage(); userImage.scale(getWidth(), getHeight()); getBackground().drawImage(userImage, 0, 0);
  • 20. Instrucciones (6)  Editar Pingu para que se mueva por el mundo  Agregar una propiedad a Pingu, si es 1 esta vivo, si es 0, esta muerto y no se mueve.  En el Mundo Kinect1World  Agregar una propiedad privada de tipo imagen, donde vamos a guardar la imagen que esta detectando el Kinect.  Asignar un método para obtener la imagen
  • 21. Instrucciones (6.2)  Checar si los Pingus chocan con el usuario, si chocan, borrarlos.  El usuario es una imagen, entonces únicamente se checa si tenemos alguna intersección  Y tenemos que checar el alfa del color sea mayor a 0.
  • 22. Código (6)  En act()  if (!colision(x,y)){  getWorld().removeObject(this);  }
  • 23. Código (6.2) Kinect1World mundo = (Kinect1World)getWorld(); GreenfootImage imagenUsuario = mundo.getImagenGuardada(); if (imagenUsuario!=null){ if ( ix < imagenUsuario.getWidth() && iy < imagenUsuario.getHeight() && imagenUsuario.getColorAt(ix, iy).getAlpha() > 0 )