Trabajos de Processing de Primer Año

¿Que es Processing?

Processing es un lenguaje de programación y un entorno de desarrollo integrado de código abierto. Es un recurso fundamental para aprender a programar de manera creativa y para producir proyectos multimedia e interactivos de diseño digital.

trabajo 0

Dibujo Basico

CONSIGNA: explorar las formas primitivas de dibujo con Processing y las diferentes alternativas de composición que ofrecen el entorno y las coordenadas para crear un grafismo libre, abstracto o figurativo.

Contenidos para el trabajo

Crear un dibujo libre con formas primitivas de Processing y sus atributos.

  • Codigo
    1. void setup(){
    2. size(600,600);
    3. }
    4. void draw(){
    5. background(255,255,0);
    6. rect(150,250,80,30);
    7. rect(370,250,80,30);
    8. rect(230,400,40,100);
    9. rect(330,400,40,100);
    10. quad(250,200,350,200,450,450,150,450);
    11. ellipse(300,150,200,200);
    12. ellipse(260,115,20,20);
    13. ellipse(340,115,20,20);
    14. ellipse(300,180,80,30);
    15. line(260,180,340,180);
    16. line(300,20,300,50);
    17. line(270,20,300,50);
    18. line(330,20,300,50);
    19. }

Trabajo 1

Animando con codigo

CONSIGNA: crear una animación con la secuencia de créditos(*) de una película o videojuego seleccionado.

Contenido para el trabajo

  • Usar variables numéricas para operaciones como:Cambiar la ubicación, el tamaño y el color de las formas y Obtener resultados haciendo cálculos matemáticos con variables.
  • Codigo
    1. PImage fondo1;
    2. PImage titulo1;
    3. PFont fuente;
    4. String texto;
    5. int movimiento=0;
    6. int mousex, mousey;
    7. void setup() {
    8. size(800, 600);
    9. textSize(25);
    10. fuente=loadFont("FreestyleScript-Regular-40.vlw");
    11. fondo1=loadImage("fondo1.jpg");
    12. titulo1=loadImage("titulo1.jpg");
    13. }
    14. void draw() {
    15. background(0);
    16. textFont(fuente);
    17. movimiento= frameCount;
    18. println(movimiento);
    19. image(fondo1, 0, 0, 800, 600);
    20. image(titulo1, 250, movimiento, 200, 350);
    21. frameCount+=2;
    22. textAlign(CENTER);
    23. if (frameCount>=602) {
    24. fill(0,0,random(255));
    25. ext("Personajes principales", 200, 1300-movimiento, 400, 100);
    26. fill(0);
    27. text("Mae Whitman-Tinker Bell", 200, 1340-movimiento, 400, 100);
    28. text("Lucy Hale-Periwinkle", 200, 1380-movimiento, 400, 100);
    29. text("Anjelina Huston-Reina Clarion", 200, 1420-movimiento, 400, 100);
    30. text("Timothy Dalton-Lord Milori", 200, 1460-movimiento, 400, 100);
    31. text("Jeff Benett-Dewey", 200, 1500-movimiento, 400, 100);
    32. }
    33. if (movimiento>=1580) {
    34. fill(0,0,random(255));
    35. text("Personajes secundarios", 200, -2060+movimiento, 400, 100);
    36. fill(0);
    37. text("Lucy Liu-Silvermist", 200, -2020+movimiento, 400, 100);
    38. text("Pamela Adlon-vidia", 200, -1980+movimiento, 400, 100);
    39. text("Megan Hilty-Rosetta", 200, -1940+movimiento, 400, 100);
    40. text("Raven Symone-Iridessa", 200, -1900+movimiento, 400, 100);
    41. text("Angela Bartys-Fawn", 200, -1860+movimiento, 400, 100);
    42. text("Debby Ryan-Spike", 200, -1820+movimiento, 400, 100);
    43. text("Grey Deliste-Gliss", 200, -1780+movimiento, 400, 100);
    44. text("Matt Lanter-Sled", 200, -1740+movimiento, 400, 100);
    45. text("Jane Horrocks-Fairy Mary", 200, -1700+movimiento, 400, 100);
    46. text("Jesse McCarthey-Terence", 200, -1660+movimiento, 400, 100);
    47. text("Rob Paulsen-boble", 200, -1620+movimiento, 400, 100);
    48. text("Jeff Benett-Clank", 200, -1580+movimiento, 400, 100);
    49. }
    50. if (movimiento>=2680);
    51. fill(0,0,random(255));
    52. text("Direccion y Guion", -2700+movimiento, 200, 400, 100);
    53. fill(0);
    54. text("Roberts Gannaways y Peggy Holmes", -2700+movimiento, 240, 400, 100);
    55. fill(0,0,random(255));
    56. text("Produccion", -2700+movimiento, 280, 400, 100);
    57. fill(0);
    58. text("Sean Lurie", -2700+movimiento, 320, 400, 100);
    59. fill(0,0,random(255));
    60. text("Musica", -2700+movimiento, 360, 400, 100);
    61. fill(0);
    62. text("Joel McNeely", -2700+movimiento, 400, 400, 100);
    63. f (movimiento>=3515) {
    64. fill(0,0,random(255));
    65. text("Montaje", 4200-movimiento, 200, 400, 100);
    66. fill(0);
    67. text("Marek Rozenbaum", 4200-movimiento, 240, 400, 100);
    68. fill(0,0,random(255));
    69. text("Escenografia", 4200-movimiento, 280, 400, 100);
    70. fill(0);
    71. text("Chris Oatley", 4200-movimiento, 320, 400, 100);
    72. fill(0,0,random(255));
    73. text("Efectos Especiales", 4200-movimiento, 360, 400, 100);
    74. fill(0);
    75. text("Jhon Edgar Park", 4200-movimiento, 400, 400, 100);
    76. }
    77. }
    78. void mousePressed(){//boton reinicio
    79. frameCount=0;
    80. }

Trabajo 2

Ilusion optica interactiva

CONSIGNA: crear una ilusión óptica* interactiva** con estructuras repetitivas (ciclos flor) y funciones propias.

contenido para el trabajo

  • Estructuras repetitivas (ciclos for): simples o anidados.
  • Funciones propias con y sin parámetros
  • Condicionales (if - else): interactuar con los índices.
  • Eventos (mouse y/o teclado): modificación de variables.
  • Algunas funciones matemáticas: dist(), map(), random().
  • Reiniciar el programa: volver variables a estado original.
  • Codigo
    1. boolean blanco=true;
    2. void setup() {
    3. size(600, 600);
    4. noStroke();
    5. }
    6. void draw() {
    7. float fx=map(mouseX, 0, width, 0, 255);
    8. float fy=map(mouseY, 0, height, 0, 255);
    9. background(fx, 0, fy);
    10. translate(width/2, height/2);
    11. rectMode(CENTER);
    12. for (int c=width; c>0; c-=20) {
    13. if (blanco) {
    14. fill (0);
    15. } else {
    16. fill(fx,0,fy);
    17. }
    18. rotate(PI/45);
    19. rect(0, 0, c, c);
    20. blanco=!blanco;
    21. }
    22. }

Trabajo 3

Juego interactivo

CONSIGNA: crear un juego interactivo de formato y temática libre.

Contenido para el trabajo

  • Estructuras repetitivas (ciclos for): simples o anidados.
  • Funciones propias con y sin parámetros
  • Condicionales (if - else)
  • Eventos (mouse y/o teclado)
  • Arreglos.
  • Codigo
      Pantalla TP3
      1. PImage fondo, nube, arcoiris;
      2. String [] textos={"un clima loco", "intrucciones:\n evitar tocar \nlas nubes para ganar\n\n con las flechitas de izquierda \ny derecha te moves", "game over\n volve a intentar\npara poder ganar", "felicitaciones ganaste\nvolve a jugar"};
      3. int estados, orden;
      4. int c=0;
      5. int cant=7;
      6. PImage[] personaje=new PImage[cant];
      7. int movimiento=0;
      8. float ax, ay, nx, ny, px, py;
      9. int tam=10;
      10. boolean perder;
      11. boolean ganar;
      12. int puntos=0;
      13. void setup() {
      14. size(800, 600);
      15. fondo=loadImage("fondo.jpg");
      16. nube=loadImage("nube.png");
      17. arcoiris=loadImage("arcoiris.png");
      18. for ( int p = 0; p < personaje.length; p++ ) {
      19. personaje[p] = loadImage( "nena"+p+".png" );
      20. }
      21. ax=400;
      22. ay=-15;
      23. nx=200;
      24. ny=-15;
      25. px=0;
      26. py=400;
      27. tam=10;
      28. }
      29. void draw() {
      30. background(0);
      31. movimiento=frameCount;
      32. println(movimiento);
      33. image(fondo, 0, 0, 800, 600);
      34. if (estados==0) {
      35. pantallas(textos[0], width/2, 100);
      36. } else if (estados==1) {
      37. pantallas(textos[1], width/2, 100);
      38. } else if (estados==2)
      39. image(personaje[c], px, py);
      40. clima();
      41. float dn=dist(px, nx, py, ny);
      42. int rn=10/2;
      43. if (dn<=rn){
      44. if (estados==3) {
      45. pantallas(textos[3], width/2, 100);
      46. }
      47. }
      48. for (int i=0; i<=15; i++) {
      49. float da=dist(px, ax, py, ay);
      50. int ra=10/2;
      51. if (da<=ra) {
      52. ganar=true;
      53. puntos++;
      54. text("puntos:"+i, 750, 50);
      55. }
      56. }
      57. text("puntos:"+i, 750, 50);
      58. }
      59. }
      60. }
      61. }
      62. void keyPressed() {
      63. if (key=='s') {
      64. estados++;
      65. }
      66. if ( keyCode == RIGHT ) {
      67. px += 10;
      68. c += 1;
      69. }
      70. if ( keyCode == LEFT ) {
      71. px -= 10;
      72. c -= 1;
      73. }
      74. if ( c == personaje.length ) {
      75. c = 0;
      76. } else if ( c == -1 ) {
      77. c = 2;
      78. }
      79. }
      80. void mousePressed() {
      81. estados=1;
      82. }
    pantalla clima
    1. void clima() {
    2. ellipse(nx, movimiento, tam, tam);
    3. image(nube, -15+nx, ny+movimiento, 40, 40);
    4. ellipse(ax, movimiento, tam, tam);
    5. image(arcoiris, -30+ax, ay+movimiento, 80, 40);
    6. frameCount+=3;
    7. if (frameCount>=600) {
    8. frameCount=0;
    9. nx=random(0, 800);
    10. ax=random(0, 800);
    11. }
    pantalla pantallas
    1. void pantallas(String texto, int px, int py) {
    2. textSize(40);
    3. textAlign(CENTER);
    4. fill(0);
    5. text(texto, px, py);
    6. }

Trabajo 4

Programando con objetos

CONSIGNA: crear una aplicación básica que comience a aprovechar el potencial de la programación orientada a objetos.

Contenido para el trabajo

  • La construcción de al menos tres (3) clases con un (1) objeto/ instancia cada una (como mínimo).
  • La aplicación debe poseer:
  • Clases que puedan comunicarse entre sí
  • que puedan interactuar con eventos (al menos los objetos de una clase).
  • Codigo
    pantalla TP4
    1. Cartelera pelis;
    2. void setup() {
    3. size(600, 400);
    4. pelis = new Cartelera();
    5. }
    6. void draw() {
    7. background(0);
    8. pelis.dibujar();
    9. }
    10. void mousePressed() {
    11. pelis.accionarBotones();
    12. }
    pantalla clase cartelera
    1. class Cartelera {
    2. Fondos peliculas;
    3. Titulos titulo;
    4. int pantalla;
    5. int anchoB, altoB;
    6. Boton [] BotonD=new Boton[8];
    7. Boton [] BotonI=new Boton[8];
    8. Cartelera() {
    9. peliculas=new Fondos();
    10. titulo=new Titulos();
    11. anchoB = 220;
    12. altoB = 50;
    13. for (int i=0; i<8; i++) {
    14. BotonD[i]=new Boton(width-anchoB, altoB, anchoB, altoB);
    15. }
    16. for (int i=0; i<8; i++) {
    17. BotonI[i]=new Boton(0, altoB, anchoB, altoB);
    18. }
    19. }
    20. void dibujar() {
    21. text(pantalla, width/2, 100);
    22. if (pantalla==0) {
    23. fill(255);
    24. titulo.texto("saga completa:Tinkerbell", width/2, height/2);
    25. BotonD[1].dibujarBoton(0, 1, "elegir pelicula");
    26. } else if (pantalla==1) {
    27. peliculas.dibujarFondo(0);
    28. fill(0);
    29. titulo.texto("Tinkerbell", width/2, 300);
    30. BotonD[2].dibujarBoton(1, 2, "siguiente pelicula");
    31. BotonI[1].dibujarBoton(1, 0, "volver a inicio");
    32. } else if (pantalla==2) {
    33. peliculas.dibujarFondo(1);
    34. titulo.texto("Tinkerbell: Hadas Piratas", width/2, 350);
    35. BotonD[3].dibujarBoton(2, 3, "siguiente pelicula");
    36. BotonI[2].dibujarBoton(2, 1, "pelicula anterior");
    37. } else if (pantalla==3) {
    38. peliculas.dibujarFondo(2);
    39. titulo.texto("Tinkerbell:Hadas al Rescate", width/2, 350);
    40. BotonD[4].dibujarBoton(3, 4, "siguiente pelicula");
    41. BotonI[3].dibujarBoton(3, 2, "pelicula anterior");
    42. } else if (pantalla==4) {
    43. peliculas.dibujarFondo(3);
    44. titulo.texto("Tinkerbell:El secreto de las Hadas", width/2, 350);
    45. BotonD[5].dibujarBoton(4, 5, "siguiente pelicula");
    46. BotonI[4].dibujarBoton(4, 3, "pelicula anterior");
    47. } else if (pantalla==5) {
    48. peliculas.dibujarFondo(4);
    49. titulo.texto("Tinkerbell:El Tesoro Perdido", width/2, 350);
    50. BotonD[6].dibujarBoton(5, 6, "siguiente pelicula");
    51. BotonI[5].dibujarBoton(5, 4, "pelicula anterior");
    52. } else if (pantalla==6) {
    53. peliculas.dibujarFondo(5);
    54. titulo.texto("Tinkerbell:La Bestia\nde Nunca Jamas", width/2, 320);
    55. BotonI[6].dibujarBoton(6, 5, "pelicula anterior");
    56. }
    57. }
    58. void accionarBotones() {
    59. if (BotonD[1].botonPress(width-anchoB, altoB, anchoB, altoB) && pantalla==BotonD[1].actual) {
    60. pantalla = BotonD[1].prox;
    61. }
    62. if (BotonD[2].botonPress(width-anchoB, altoB, anchoB, altoB)&&pantalla==BotonD[2].actual) {
    63. pantalla = BotonD[2].prox;
    64. }
    65. if (BotonD[3].botonPress(width-anchoB, altoB, anchoB, altoB)&& pantalla==BotonD[3].actual) {
    66. pantalla = BotonD[3].prox;
    67. }
    68. if (BotonD[4].botonPress(width-anchoB, altoB, anchoB, altoB)&& pantalla==BotonD[4].actual) {
    69. pantalla = BotonD[4].prox;
    70. }
    71. if (BotonD[5].botonPress(width-anchoB, altoB, anchoB, altoB)&& pantalla==BotonD[5].actual) {
    72. pantalla = BotonD[5].prox;
    73. }
    74. if (BotonD[6].botonPress(width-anchoB, altoB, anchoB, altoB)&& pantalla==BotonD[6].actual) {
    75. pantalla = BotonD[6].prox;
    76. }
    77. if (BotonI[1].botonPress(0, altoB, anchoB, altoB) && pantalla==BotonI[1].actual) {
    78. pantalla = BotonI[1].prox;
    79. }
    80. if (BotonI[2].botonPress(0, altoB, anchoB, altoB)&&pantalla==BotonI[2].actual) {
    81. pantalla = BotonI[2].prox;
    82. }
    83. if (BotonI[3].botonPress(0, altoB, anchoB, altoB)&& pantalla==BotonI[3].actual) {
    84. pantalla = BotonI[3].prox;
    85. }
    86. if (BotonI[4].botonPress(0, altoB, anchoB, altoB)&& pantalla==BotonI[4].actual) {
    87. pantalla = BotonI[4].prox;
    88. }
    89. if (BotonI[5].botonPress(0, altoB, anchoB, altoB)&& pantalla==BotonI[5].actual) {
    90. pantalla = BotonI[5].prox;
    91. }
    92. if (BotonI[6].botonPress(0, altoB, anchoB, altoB)&& pantalla==BotonI[6].actual) {
    93. pantalla = BotonI[6].prox;
    94. }
    95. }
    96. }
    pantalla clase pelicula
    1. class Fondos {
    2. PImage pelicula1, pelicula2, pelicula3, pelicula4, pelicula5, pelicula6;
    3. int miFondo;
    4. PImage [] fondos = new PImage [7];
    5. ondos() {
    6. for (int i=0; i
    7. fondos[i] = loadImage("pelicula"+i+".jpg");
    8. }
    9. }
    10. void dibujarFondo(int i) {
    11. image(fondos[miFondo+i], 0, 0, 600, 400);
    12. }
    13. }
    pantalla clase titulos
    1. class Titulos {
    2. PFont letra;
    3. Titulos() {
    4. letra=loadFont("Kunstler.vlw");
    5. }
    6. void texto(String tituloP, int px, int py) {
    7. push();
    8. textFont(letra);
    9. text(tituloP, px, py);
    10. pop();
    11. }
    12. }
    pantalla clase botones
    1. class Boton {
    2. int bx, by, ancho, alto;
    3. int actual, prox;
    4. String texto;
    5. Boton(int bx, int by, int ancho, int alto) {
    6. this.bx = bx;
    7. this.by = by;
    8. this.ancho = ancho;
    9. this.alto = alto;
    10. textAlign(CENTER, CENTER);
    11. textSize(alto/2);
    12. }
    13. void dibujarBoton(int actual, int prox, String texto) {
    14. this.actual = actual;
    15. this.prox = prox;
    16. this.texto = texto;
    17. fill(0, 255, 100);
    18. rect(bx, by, ancho, alto);
    19. fill(0);
    20. text(texto, bx+ancho/2, by+alto/2);
    21. }
    22. boolean botonPress(int bx, int by, int ancho, int alto) {
    23. return mouseX>bx && mouseXby && mouseY
    24. }
    25. }

Trabajo 5 y final

Avanzando con POO

CONSIGNA: crear una aplicación con los siguientes contenidos:

  • Lógica de estados:
  • Una pantalla de inicio.
  • Pantallas de desarrollo.
  • Pantalla de créditos (con posibilidad de reiniciar el programa).
  • Programado íntegramente con POO y que incluya al menos un arreglo de objetos.
  • Comunicación entre clases a través de sus métodos.
  • Implementación de alguna librería de sonido.
  • Codigo
    pantalla clase tp5
    1. import processing.sound.*;
    2. SoundFile sonido;
    3. Juego juego;
    4. void setup() {
    5. size(600, 400);
    6. juego=new Juego();
    7. //sonido=new SoundFile(this,"sonido.mp3");
    8. //sonido.loop();
    9. //sonido.amp(0.3);
    10. }
    11. void draw() {
    12. background(0);
    13. juego.dibujar();
    14. if (keyPressed) {
    15. juego.moverpersonaje(keyCode);
    16. }
    17. }
    18. void mousePressed() {
    19. juego.accionarBotones();
    20. }
    pantalla clase botones
    1. class Boton {
    2. int bx, by, ancho, alto;
    3. int actual, prox;
    4. String texto;
    5. Boton(int bx, int by, int ancho, int alto) {
    6. this.bx = bx;
    7. this.by = by;
    8. this.ancho = ancho;
    9. this.alto = alto;
    10. textAlign(CENTER, CENTER);
    11. textSize(alto/2);
    12. }
    13. void dibujarBoton(int actual, int prox, String texto) {
    14. this.actual = actual;
    15. this.prox = prox;
    16. this.texto = texto;
    17. fill(0, 255, 100);
    18. rect(bx, by, ancho, alto);
    19. fill(0);
    20. text(texto, bx+ancho/2, by+alto/2);
    21. }
    22. boolean botonPress(int bx, int by, int ancho, int alto) {
    23. return mouseX>bx && mouseXby && mouseY
    24. }
    25. }
    pantalla clase fondo
    1. class Fondos {
    2. int miFondo;
    3. PImage [] fondos = new PImage [6];
    4. Fondos() {
    5. for (int i=0; i
    6. fondos[i] = loadImage("fondo"+i+".jpg");
    7. }
    8. }
    9. void dibujarFondo(int i) {
    10. imageMode(CORNER);
    11. image(fondos[miFondo+i], 0, 0, 600, 400);
    12. }
    13. }
    pantalla clase juego
    1. class Juego {
    2. Personaje nena;
    3. Fondos fondo;
    4. PFont letra;
    5. int pantalla;
    6. int anchoB, altoB;
    7. int puntos;
    8. int contador=0;
    9. Botones [] Boton=new Botones[9];
    10. Nieve [] nieves = new Nieve[10];
    11. Juego() {
    12. nena=new Personaje();
    13. fondo=new Fondos();
    14. letra=loadFont("forsa.vlw");
    15. anchoB=220;
    16. altoB=30;
    17. for (int i=0; i<9; i++) {
    18. Boton[i]=new Botones(width-anchoB, altoB, anchoB, altoB);
    19. }
    20. for (int i=0; i
    21. nieves[i] = new Nieve(50+i*height/6);
    22. }
    23. }
    24. void dibujar() {
    25. textFont(letra);
    26. textSize(20);
    27. text(pantalla, width/2, 100);
    28. if (pantalla==0) {
    29. fondo.dibujarFondo(0);
    30. push();
    31. textSize(50);
    32. text("La\n Tormenta", width/2, 100);
    33. pop();
    34. text("pasas pantalla haciendo\nclick en los botones.", width/2, 370);
    35. Boton[1].dibujarBoton(0, 1, "Creditos");
    36. }
    37. if (pantalla==1) {
    38. fondo.dibujarFondo(1);
    39. push();
    40. textSize(30);
    41. text("Juego creado por la alumna: \nAlonso Mayra (91340/9)\nAño: 2022", width/2, 150);
    42. pop();
    43. Boton[2].dibujarBoton(1, 2, "Instrucciones");
    44. }
    45. if (pantalla==2) {
    46. fondo.dibujarFondo(2);
    47. push();
    48. textSize(30);
    49. text("Tenes que escapar de la tormenta de\n nieve con las flechitas de izquierda y\n derecha. suerte...", width/2, 120);
    50. pop();
    51. text("para ganar tener que aguantar\n 20 segundos sin perder 3 vidas", 170, 300);
    52. Boton[3].dibujarBoton(2, 3, "Jugar");
    53. }
    54. if (pantalla==3) {
    55. fondo.dibujarFondo(3);
    56. nena.dibujarnena();
    57. dibujarjuego();
    58. perder();
    59. text("vidas perdidas:", 80, 30);
    60. text(puntos, 160, 30);
    61. if (frameCount%60==0) {
    62. contador++;
    63. }
    64. text("tiempo:", 500, 30);
    65. text(contador, 550, 30);
    66. if (puntos<3 && contador==20) {//condicion para ganar
    67. pantalla=4;
    68. puntos=0;
    69. contador=0;
    70. }
    71. if (puntos==3) {//condicion para perder
    72. pantalla=5;
    73. puntos=0;
    74. contador=0;
    75. }
    76. }
    77. if (pantalla==4) {//gano
    78. fondo.dibujarFondo(4);
    79. Boton[4].dibujarBoton(4, 0, "volver al inicio");
    80. push();
    81. textSize(30);
    82. text("felicitaciones ganaste!\npodes volver al inicio", width/2, 100);
    83. pop();
    84. }
    85. if (pantalla==5) {//perdio
    86. fondo.dibujarFondo(5);
    87. Boton[5].dibujarBoton(5, 0, "volver al inicio");
    88. push();
    89. textSize(30);
    90. text("lo siento perdiste!\npodes volver al inicio", width/2, 100 );
    91. pop();
    92. }
    93. println(pantalla+" "+puntos+" "+contador);
    94. void accionarBotones() {
    95. }
    96. if (Boton[1].botonPress(width-anchoB, altoB, anchoB, altoB) && pantalla==Boton[1].actual) {
    97. pantalla = Boton[1].prox;
    98. }
    99. if (Boton[2].botonPress(width-anchoB, altoB, anchoB, altoB)&&pantalla==Boton[2].actual) {
    100. pantalla = Boton[2].prox;
    101. }
    102. if (Boton[3].botonPress(width-anchoB, altoB, anchoB, altoB)&& pantalla==Boton[3].actual) {
    103. pantalla = Boton[3].prox;
    104. }
    105. if (Boton[4].botonPress(width-anchoB, altoB, anchoB, altoB)&& pantalla==Boton[4].actual) {
    106. pantalla = Boton[4].prox;
    107. }
    108. if (Boton[5].botonPress(width-anchoB, altoB, anchoB, altoB)&& pantalla==Boton[5].actual) {
    109. pantalla = Boton[5].prox;
    110. }
    111. }
    112. void moverpersonaje(int tecla) {
    113. nena.movernena(tecla);
    114. }
    115. void dibujarjuego() {
    116. for (int i=0; i
    117. nieves[i].dibujarcopo();
    118. nieves[i].movercopo();
    119. }
    120. }
    121. void perder() {
    122. for (int i=0; i
    123. float distancia = dist(nena.nx, nena.ny, nieves[i].cx, nieves[i].cy);
    124. if (distancia
    125. nieves[i].derribado();
    126. puntos++;
    127. }
    128. }
    129. }
    130. }
    pantalla clase nieve
    1. class Nieve {
    2. PImage copo;
    3. float cx, cy, ctam, nvel;
    4. boolean copoderribado;
    5. Nieve(float n) {
    6. copo=loadImage("copo.png");
    7. ctam = 20;
    8. cy =random(width, width);
    9. cx = n;
    10. nvel = random(1, 1);
    11. copoderribado = false;
    12. }
    13. void dibujarcopo() {
    14. imageMode(CENTER);
    15. image(copo, cx, cy, 40, 40);
    16. }
    17. void movercopo() {
    18. if (cy>height+ctam || copoderribado) {
    19. cy =random(-height/2, -ctam);
    20. ctam = 20;
    21. nvel = random(2, 4);
    22. copoderribado = false;
    23. }
    24. cy+=nvel;
    25. }
    26. void derribado() {
    27. copoderribado=true;
    28. }
    29. }
    pantalla clase personaje
    1. class Personaje {
    2. PImage nena;
    3. int nx, ny, ntam;
    4. Personaje() {
    5. nena=loadImage("nena.png");
    6. nx=width/2;
    7. ny=330;
    8. ntam=10;
    9. }
    10. void dibujarnena() {
    11. imageMode(CENTER);
    12. image(nena, nx, ny, 100, 160);
    13. }
    14. void movernena(int tecla) {
    15. if (tecla==RIGHT && ny
    16. nx+=3;
    17. }
    18. if (tecla==LEFT && nx>ntam/4) {
    19. nx-=3;
    20. }
    21. if (nx>width) {
    22. nx=0;
    23. }
    24. }
    25. }

Metodo de entrega para los trabajos

<6>Para entregar los trabajos de debe subir los archivos de processing a la pagina llamada GitHub
  • Lo primero que debemos hacer en crearnos una cuenta en GitHub
  • Luego crear un repositorio para la materia "tecnomultimedia".
  • se crean ranchs para cada trabajo ej: tp0
  • subir los archivos en cada branch dependiendo el numero de trabajo
  • copiamos la URL de la pagina y la subimos al colaboratorio.

Video explicativo del trabajo

Se debe hacer una breve presentación personal y una explicando del programa realizado (código) aproximadamente de una duracion de 2 minutos como maximo..

creditos

Alonso Mayra cursando el primer año de la carrera de diseño multimedial