Wiimote Sensor

En este ejemplo de programa HOST se pinta un circulo. A través del mando Wii se controla el círculo, que se moverá en función de si se pulsan los botones “arriba”, “abajo”, “derecha” o “izquierda” del mando. Además si se pulsa el botón “A”, el círculo cambia de color, aleatoriamente.

 

Fichero displays.xml

<xml >
<virtualDisplay width="1280" height="768"> 
 <display id="1" x="0" y="0" width="1280" height="768" />
</virtualDisplay>
</xml>

Codigo Host en Proccessing

int ANCHO=1280; //definir valores segun tamaño pantalla destino
int ALTO=768;
TACAPI miAPI;
DisplaysHost displaysClient;

//variables del juego
 float x=1; //posicion del circulo
 float y=300;
 int r = 255;
 int g = 255;
 int b = 255;

void setup() {
 // Keystone will only work with P3D or OPENGL renderers, 
 // since it relies on texture mapping to deform
 //fullScreen( P3D);
 size(80, 60, P3D); 
 frameRate(16);
 
 //definicion de la API
 miAPI = new TACAPI();
 
 //virtual screens
 displaysClient = new DisplaysHost("host"); 
}

void draw() {
 displaysClient.beginDraw();
 //Programacion Juego
 displaysClient.elipse(x, y, 100,100, r, g, b, 255);
 displaysClient.endDraw();
}

void eventoTAC(TAC ta) {
 //tratamiento de tacs
}

void mensajeRecibido(OscMessage theOscMessage) {
 //tratamiento mensaje osc
 if(theOscMessage.addrPattern().equals("/wii/0D") && theOscMessage.get(0).stringValue().equals("add")){
 if(theOscMessage.get(1).stringValue().equals("up"))
 y = y - 10;
 if(theOscMessage.get(1).stringValue().equals("down"))
 y = y + 10;
 if(theOscMessage.get(1).stringValue().equals("right"))
 x = x + 10;
 if(theOscMessage.get(1).stringValue().equals("left"))
 x = x - 10;
 if(theOscMessage.get(1).stringValue().equals("A")){
 r = int(random(0, 255));
 g = int(random(0, 255));
 b = int(random(0, 255));
 }
 }
}

void keyPressed() {
 switch(key) { 
 case ESC: 
 displaysClient.disconnect();
 super.stop();
 break;
 }
}

Retos de aprendizaje

 


Documentación

  • linea

Este método permite dibujar una línea de un color, opacidad y grosor determinados. El color se indica en formato RGB. Los parámetros que recibe son los siguientes:

float x1: posición del extremo 1 de la línea en el eje X (2D).

float y1: posición del extremo 1 de la línea en el eje Y (2D).

float x2: posición del extremo 2 de la línea en el eje X (2D).

float y2: posición del extremo 2 de la línea en el eje Y (2D).

int r: valor de la componente rojo del color con el que se pintará la línea. Valores: 0-255.

int g: valor de la componente verde del color con el que se pintará la línea. Valores: 0-255.

int b: valor de la componente azul del color con el que se pintará la línea. Valores: 0-255.

int alpha: opacidad de la línea. Valores: 0 (transparente) – 255 (opaco)

int grosor: grosor con el que se dibujará la línea.

  • curva

Este método permite dibujar una curva de un color, opacidad y grosor determinados. El color se indica en formato RGB. La curva se dibuja a través de 4 puntos: comienzo y final de la línea curva y los puntos de control de inicio y final. Los parámetros que recibe son los siguientes:

float x1: posición del punto de control inicial en el eje X (2D).

float y1: posición del punto de control inicial en el eje Y (2D).

float x2: posición del extremo 1 de la curva en el eje X (2D).

float y2: posición del extremo 1 de la curva en el eje Y (2D).

float x3: posición del extremo 2 de la curva en el eje X (2D).

float y3: posición del extremo 2 de la curva en el eje Y (2D).

float x4: posición del punto de control final en el eje X (2D).

float y4: posición del punto de control final en el eje Y (2D).

int r: valor de la componente rojo del color con el que se pintará la línea. Valores: 0-255.

int g: valor de la componente verde del color con el que se pintará la línea. Valores: 0-255.

int b: valor de la componente azul del color con el que se pintará la línea. Valores: 0-255.

int alpha: opacidad de la línea. Valores: 0 (transparente) – 255 (opaco)

int grosor: grosor con el que se dibujará la línea.

  • rectangulo

Este método permite dibujar un rectángulo del color que se desee, con o sin contorno (del color especificado) y del tamaño que se desee. Los parámetros que se le pasan a este método son:

float x: posición de la esquina superior izquierda del rectángulo en el eje X (2D).

float y: posición de la esquina superior izquierda del rectángulo en el eje Y (2D).

int ancho: anchura del rectángulo que se va a dibujar.

int alto: altura del rectángulo que se va a dibujar.

int rrell: valor de la componente rojo del color con el que se pintará el relleno del rectángulo. Valores: 0-255.

int grell: valor de la componente verde del color con el que se pintará el relleno del rectángulo. Valores: 0-255.

int brell: valor de la componente azul del color con el que se pintará el relleno del rectángulo. Valores: 0-255.

int alpharell: opacidad del relleno del rectángulo. Valores: 0 (transparente) – 255 (opaco)

int grosor (OPCIONAL): grosor del contorno del rectángulo.

int rcon (OPCIONAL): valor de la componente rojo del color con el que se pintará el contorno del rectángulo. Valores: 0-255.

int gcon (OPCIONAL): valor de la componente verde del color con el que se pintará el contorno del rectángulo. Valores: 0-255.

int bcon (OPCIONAL): valor de la componente azul del color con el que se pintará el contorno del rectángulo. Valores: 0-255.

int alphacon (OPCIONAL): opacidad del contorno del rectángulo. Valores: 0 (transparente) – 255 (opaco)

  • elipse

Este método permite dibujar una elipse del color especificado, con o sin contorno ( del color que se indique) y del tamaño que se desee. Los parámetros que recibe son los siguientes:

float x: posición del centro de la elipse en el eje X (2D).

float y: posición del centro de la elipse en el eje Y (2D).

int ancho: anchura de la elipse que se va a dibujar.

int alto: altura de la elipse que se va a dibujar.

int rrell: valor de la componente rojo del color con el que se pintará el relleno de la elipse. Valores: 0-255.

int grell: valor de la componente verde del color con el que se pintará el relleno de la elipse. Valores: 0-255.

int brell: valor de la componente azul del color con el que se pintará el relleno de la elipse. Valores: 0-255.

int alpharell: opacidad del relleno de la elipse que se va a dibujar. Valores: 0 (transparente) – 255 (opaco)

int grosor (OPCIONAL): grosor del contorno de la elipse a dibujar.

int rcon (OPCIONAL): valor de la componente rojo del color con el que se pintará el contorno de la elipse. Valores: 0-255.

int gcon (OPCIONAL): valor de la componente verde del color con el que se pintará el contorno de la elipse. Valores: 0-255.

int bcon (OPCIONAL): valor de la componente azul del color con el que se pintará el contorno de la elipse. Valores: 0-255.

int alphacon (OPCIONAL): opacidad del contorno de la elipse a dibujar. Valores: 0 (transparente) – 255 (opaco).