SlideShare una empresa de Scribd logo
1 de 12
Programando el
Kinect con Greenfoot
         (3)
    Eduardo H. Calvillo Gámez
Calibrando Usuarios
 Clase UserData
   Métodos
      isTracking();
         Booleano, nos indica si esta haciendo “tracking” pues ya
           termino de calibrar.
      isCalibrating();
         Booleano, nos indica si esta calibrando.

 Clase KinectWorld
   getAllUsers();
      Arreglo de UserData, todos los usuarios frente al
        Kinect.
Ejemplo:
Instrucciones.java
   Método act() & addedToWorld(…)
//Método act()
KinectWorld world = (KinectWorld)getWorld();

         boolean trackingAny = false;
         boolean calibratingAny = false;
         UserData[] us = world.getAllUsers();
         for (UserData u : us)
         {
            trackingAny = trackingAny || u.isTracking();
            calibratingAny = calibratingAny || u.isCalibrating();
         }

         if (us.length > 0 && !trackingAny && ! calibratingAny)
         {
             setImage(begin);
         }
         else if (us.length > 0 && !trackingAny && calibratingAny)
         {
             setImage(calibrating);
         }
         else
         {
             setImage(blank);
     }
 }
protected void addedToWorld(World world)
  {
     begin = new GreenfootImage("begin.png");
     begin.scale(world.getWidth(), world.getHeight());
     calibrating = new GreenfootImage("calibrating.png");
     calibrating.scale(world.getWidth(), world.getHeight());
     blank = new GreenfootImage(1, 1);
     setImage(blank);
  }
Usuarios
 Clase UserData
    drawStickFigure(…)
       drawStickFigure(getBackground(), 60);

    getJoint

 Clase Joint
    Constantes para cada parte del cuerpo

 getJoint(Joint.LEFT_HAND) nos regresa la parte
   que indicamos (objeto de tipo Joint)
Ejemplo
 Para checar si alguien levanto la mano izquierda
    u.getJoint(Joint.LEFT_HAND).getY() <
      u.getJoint(Joint.HEAD).getY()
Ejemplo
Dibujando con la mano derecha
import greenfoot.*;

public class Brocha extends Actor
{
  public Brocha(int width, int height)
  {
     setImage(new GreenfootImage(width, height));
     getImage().setColor(java.awt.Color.GREEN);
  }

    public void act()
    {
      PaintWorld world = (PaintWorld)getWorld();

        UserData[] users = world.getTrackedUsers();
        for (UserData user : users)
        {
           Joint rightHand = user.getJoint(Joint.RIGHT_HAND);
           getImage().fillOval(rightHand.getX(), rightHand.getY(), 20, 20);

            if (user.getJoint(Joint.LEFT_HAND).getY() < user.getJoint(Joint.HEAD).getY())
            {
                getImage().clear();
            }
        }
    }
}
Ejemplo
 PintarMundo
public class PintarMundo extends KinectWorld{
  private static final int THUMBNAIL_WIDTH = 80;
  private static final int THUMBNAIL_HEIGHT = 60;
  …
  public PintarMundo()
  {
     super(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, 1.0, false);

    final int width = getWidth();
    final int height = getHeight();

   addObject(new Brocha(width, height), width/2, height/2);
   addObject(new Instructiones(), width/2, height/2);
   addObject(new Foto(), width - THUMBNAIL_WIDTH/2, height -
THUMBNAIL_HEIGHT/2);

     Label instr = new Label(”Usa la mano derecha para pintar, la izquierda
para borrar", 20);
     addObject(instr, instr.getImage().getWidth() /
2, getBackground().getHeight() - (instr.getImage().getHeight() / 2));
   }
public void act()
  {
    super.act();
    if (!isConnected())
        return;

    UserData[] us = getTrackedUsers();
    getBackground().setColor(java.awt.Color.WHITE);
    getBackground().fill();



    for (UserData u: us)
    {
       //Draws their stick figure:
       u.drawStickFigure(getBackground(), 60);

}

Más contenido relacionado

Similar a Greenfoot & Kinect (Parte 3)

Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014Fernando Gallego
 
Interfaz gráfica de usuario
Interfaz gráfica de usuarioInterfaz gráfica de usuario
Interfaz gráfica de usuarioaleja0940
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5Plain Concepts
 
Laboratorio de algoritmos
Laboratorio de algoritmosLaboratorio de algoritmos
Laboratorio de algoritmosChristian10532
 
Xna game studio presentación 02
Xna game studio   presentación 02Xna game studio   presentación 02
Xna game studio presentación 02Juan Cardona
 
Como crear un blog 2 parte
Como crear un blog 2 parteComo crear un blog 2 parte
Como crear un blog 2 partedaniescribano16
 
Cuadrado y cubo de un numero
Cuadrado y cubo de un numeroCuadrado y cubo de un numero
Cuadrado y cubo de un numeroRobert Wolf
 
Manual de android
Manual de androidManual de android
Manual de androidJarboledah
 
Graficar lineas en java, en un j panel
Graficar lineas en java, en un j panelGraficar lineas en java, en un j panel
Graficar lineas en java, en un j panelEdison Rivadeneira
 
Taller cognitive services en contenedores locales
Taller cognitive services en contenedores localesTaller cognitive services en contenedores locales
Taller cognitive services en contenedores localesLuis Beltran
 

Similar a Greenfoot & Kinect (Parte 3) (20)

Programación i
Programación iProgramación i
Programación i
 
Practica eventos
Practica eventosPractica eventos
Practica eventos
 
Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014
 
Interfaz gráfica de usuario
Interfaz gráfica de usuarioInterfaz gráfica de usuario
Interfaz gráfica de usuario
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
 
Applets.pdf
Applets.pdfApplets.pdf
Applets.pdf
 
Introduccion a awt
Introduccion a awtIntroduccion a awt
Introduccion a awt
 
Multimedia en android
Multimedia en androidMultimedia en android
Multimedia en android
 
Laboratorio de algoritmos
Laboratorio de algoritmosLaboratorio de algoritmos
Laboratorio de algoritmos
 
Mp mardoqueo informe tecnico tap
Mp mardoqueo informe tecnico tapMp mardoqueo informe tecnico tap
Mp mardoqueo informe tecnico tap
 
Xna game studio presentación 02
Xna game studio   presentación 02Xna game studio   presentación 02
Xna game studio presentación 02
 
Como crear un blog 2 parte
Como crear un blog 2 parteComo crear un blog 2 parte
Como crear un blog 2 parte
 
Vector
Vector Vector
Vector
 
Cuadrado y cubo de un numero
Cuadrado y cubo de un numeroCuadrado y cubo de un numero
Cuadrado y cubo de un numero
 
Curso android studio
Curso android studioCurso android studio
Curso android studio
 
Curso android studio
Curso android studioCurso android studio
Curso android studio
 
Manual de android
Manual de androidManual de android
Manual de android
 
Graficar lineas en java, en un j panel
Graficar lineas en java, en un j panelGraficar lineas en java, en un j panel
Graficar lineas en java, en un j panel
 
Taller cognitive services en contenedores locales
Taller cognitive services en contenedores localesTaller cognitive services en contenedores locales
Taller cognitive services en contenedores locales
 
Cecytem
CecytemCecytem
Cecytem
 

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

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
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
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
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
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
 
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
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
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
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
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
 
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í
 
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
 
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
 

Último (20)

Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
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
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
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.
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
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
 
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
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
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
 
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
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
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
 
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
 
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
 
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
 

Greenfoot & Kinect (Parte 3)

  • 1. Programando el Kinect con Greenfoot (3) Eduardo H. Calvillo Gámez
  • 2. Calibrando Usuarios  Clase UserData  Métodos  isTracking();  Booleano, nos indica si esta haciendo “tracking” pues ya termino de calibrar.  isCalibrating();  Booleano, nos indica si esta calibrando.  Clase KinectWorld  getAllUsers();  Arreglo de UserData, todos los usuarios frente al Kinect.
  • 3. Ejemplo: Instrucciones.java Método act() & addedToWorld(…)
  • 4. //Método act() KinectWorld world = (KinectWorld)getWorld(); boolean trackingAny = false; boolean calibratingAny = false; UserData[] us = world.getAllUsers(); for (UserData u : us) { trackingAny = trackingAny || u.isTracking(); calibratingAny = calibratingAny || u.isCalibrating(); } if (us.length > 0 && !trackingAny && ! calibratingAny) { setImage(begin); } else if (us.length > 0 && !trackingAny && calibratingAny) { setImage(calibrating); } else { setImage(blank); } }
  • 5. protected void addedToWorld(World world) { begin = new GreenfootImage("begin.png"); begin.scale(world.getWidth(), world.getHeight()); calibrating = new GreenfootImage("calibrating.png"); calibrating.scale(world.getWidth(), world.getHeight()); blank = new GreenfootImage(1, 1); setImage(blank); }
  • 6. Usuarios  Clase UserData  drawStickFigure(…)  drawStickFigure(getBackground(), 60);  getJoint  Clase Joint  Constantes para cada parte del cuerpo  getJoint(Joint.LEFT_HAND) nos regresa la parte que indicamos (objeto de tipo Joint)
  • 7. Ejemplo  Para checar si alguien levanto la mano izquierda  u.getJoint(Joint.LEFT_HAND).getY() < u.getJoint(Joint.HEAD).getY()
  • 9. import greenfoot.*; public class Brocha extends Actor { public Brocha(int width, int height) { setImage(new GreenfootImage(width, height)); getImage().setColor(java.awt.Color.GREEN); } public void act() { PaintWorld world = (PaintWorld)getWorld(); UserData[] users = world.getTrackedUsers(); for (UserData user : users) { Joint rightHand = user.getJoint(Joint.RIGHT_HAND); getImage().fillOval(rightHand.getX(), rightHand.getY(), 20, 20); if (user.getJoint(Joint.LEFT_HAND).getY() < user.getJoint(Joint.HEAD).getY()) { getImage().clear(); } } } }
  • 11. public class PintarMundo extends KinectWorld{ private static final int THUMBNAIL_WIDTH = 80; private static final int THUMBNAIL_HEIGHT = 60; … public PintarMundo() { super(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, 1.0, false); final int width = getWidth(); final int height = getHeight(); addObject(new Brocha(width, height), width/2, height/2); addObject(new Instructiones(), width/2, height/2); addObject(new Foto(), width - THUMBNAIL_WIDTH/2, height - THUMBNAIL_HEIGHT/2); Label instr = new Label(”Usa la mano derecha para pintar, la izquierda para borrar", 20); addObject(instr, instr.getImage().getWidth() / 2, getBackground().getHeight() - (instr.getImage().getHeight() / 2)); }
  • 12. public void act() { super.act(); if (!isConnected()) return; UserData[] us = getTrackedUsers(); getBackground().setColor(java.awt.Color.WHITE); getBackground().fill(); for (UserData u: us) { //Draws their stick figure: u.drawStickFigure(getBackground(), 60); }