En este ejemplo de programa HOST se pinta un circulo rojo en el display 1, y se mueve lentamente de un lado a otro de la pantalla:
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; float vx=2.5; float vy=0; 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, 50,50, 255, 100,100, 255); x=x+vx; y=y+vy; if ((x>ANCHO) || (x<0)) vx=-vx; displaysClient.endDraw(); } void eventoTAC(TAC ta) { //tratamiento de tacs } void mensajeRecibido(OscMessage theOscMessage) { //tratamiento mensaje osc } void keyPressed() { switch(key) { case ESC: displaysClient.disconnect(); super.stop(); break; } }
Retos de aprendizaje
- hacer que el circulo se mueva en diagonal, rebotando en los limites de la pantalla
- añadir 50 circulos más. hacer que empiecen en posiciones aleatorias, con velocidades aleatorias, con tamaños aleatorios y con colores aleatorios
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).