SlideShare una empresa de Scribd logo

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

Xna game studio presentación 05
Xna game studio   presentación 05Xna game studio   presentación 05
Xna game studio presentación 05
Juan Cardona
 
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
Bruno Capuano
 
Manual y temario unity
Manual y temario unityManual y temario unity
Manual y temario unity
Marisol ALTAMIRANO CABRERA
 
Desarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2DDesarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2D
Jordan-P
 
leccion 8
leccion 8leccion 8
leccion 8
heidiromero11
 
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
dani t
 
CAPITULO 8 DE GREENFOOT
CAPITULO 8 DE GREENFOOTCAPITULO 8 DE GREENFOOT
CAPITULO 8 DE GREENFOOT
ManuelHernandez480
 
Capitulo 8
Capitulo 8Capitulo 8
Capitulo 8
ramosmendezshura
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
Elian Maya
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
MartinCetis109
 
Pra8
Pra8Pra8
CAPITULO 8 GREENFOOT
CAPITULO 8 GREENFOOTCAPITULO 8 GREENFOOT
CAPITULO 8 GREENFOOT
KatherinBarrios17
 
Capitulo 8
Capitulo 8Capitulo 8
Capitulo 8
MaryferGaitan
 
Capitulo 8 greenfoot
Capitulo 8  greenfootCapitulo 8  greenfoot
Capitulo 8 greenfoot
Aquino1912
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
RodriguezNunezIvan
 
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)
Laura Cortez
 
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)
ArmandoC42
 
Xna game studio presentación 02
Xna game studio   presentación 02Xna game studio   presentación 02
Xna game studio presentación 02
Juan Cardona
 

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
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
 
Pra8
Pra8Pra8
Pra8
 
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
 
Capitulo 8 greenfoot
Capitulo 8  greenfootCapitulo 8  greenfoot
Capitulo 8 greenfoot
 
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)
 
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

Diseño ux
Diseño uxDiseño ux
Diseñando para UX
Diseñando para UXDiseñando para UX
Diseñando para UX
Eduardo Calvillo Gamez
 
Usabilidad: Ejecución y Reporte
Usabilidad: Ejecución y ReporteUsabilidad: Ejecución y Reporte
Usabilidad: Ejecución y Reporte
Eduardo Calvillo Gamez
 
Cómputo Persuasivo (Continuación
Cómputo Persuasivo (ContinuaciónCómputo Persuasivo (Continuación
Cómputo Persuasivo (Continuación
Eduardo Calvillo Gamez
 
Computo Persuasivo
Computo PersuasivoComputo Persuasivo
Computo Persuasivo
Eduardo Calvillo Gamez
 
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
Eduardo Calvillo Gamez
 
Semana10: Intro a la Experienc
Semana10: Intro a la ExperiencSemana10: Intro a la Experienc
Semana10: Intro a la Experienc
Eduardo Calvillo Gamez
 
Semana 7 - Curso de Creatividad
Semana 7 - Curso de CreatividadSemana 7 - Curso de Creatividad
Semana 7 - Curso de Creatividad
Eduardo Calvillo Gamez
 
Semana 8: Introducción a IHC
Semana 8: Introducción a IHCSemana 8: Introducción a IHC
Semana 8: Introducción a IHC
Eduardo Calvillo Gamez
 
Semana4: Creatividad Representación
Semana4: Creatividad RepresentaciónSemana4: Creatividad Representación
Semana4: Creatividad Representación
Eduardo Calvillo Gamez
 
Semana6 - Proyecto de Desarrollo de VG
Semana6 - Proyecto de Desarrollo de VGSemana6 - Proyecto de Desarrollo de VG
Semana6 - Proyecto de Desarrollo de VG
Eduardo Calvillo Gamez
 
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
Eduardo Calvillo Gamez
 
Creatividad Semana2
Creatividad Semana2Creatividad Semana2
Creatividad Semana2
Eduardo Calvillo Gamez
 
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
Eduardo Calvillo Gamez
 
Creatividad - Semana 1
Creatividad - Semana 1Creatividad - Semana 1
Creatividad - Semana 1
Eduardo Calvillo Gamez
 
De Juegos y Diversion 2.0
De Juegos y Diversion 2.0De Juegos y Diversion 2.0
De Juegos y Diversion 2.0
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

PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
jheisonraulmedinafer
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
AracelidelRocioOrdez
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
SandraPiza2
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 

Último (20)

PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 

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 )