Trabajos Prácticos

TP#0: Dibujo clásico

CONSIGNA: explorar las formas primitivas de dibujo, alternativas de composición y las coordenadas para crear un grafismo libre, abstracto o figurativo.

Acerca del trabajoclose

Para este trabajo utilicé figuras primitivas 2d tales como rect(), cicle(), ellipse(), line() y triangle() para realizar el dibujo de un personaje de la serie animada japonesa Aggretsuko.

TP#1: Animando con código

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

Acerca del trabajoclose

Para este trabajo utilice principalmente condicionales como if() y else() para pasar de una pantalla a otra y, por otro lado, lograr que el texto se moviera de abajo hacia arriba; dando un efecto tipico de los créditos de una película o serie. En este caso realicé los créditos de la serie animada japonesa Cowboy Bebop, utilizando su intro como principal referecia.

TP#2: Ilusión óptica interactiva

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

Acerca del trabajoclose

Para este trabajo utilicé ciclo for(), if(), map(), y figuras primitivas como rect() y ellipse() para dibujar formas en pantalla cuyo tamaño y posición puedan ser manipuladas por el usuario al clickear y arrastrar el mouse. Esto fue posible al utilizar un dist() que me permitia calcular la posición en mouseX y mouseY con respecto a las figuras en pantalla, y posteriormente manipular el comportamiento de estas últimas.

TP#3: Juego interactivo

CONSIGNA: crear un juego interactivo de formato y temática libre. Incorporando un conflicto principal de carácter lúdico con dos resultados posibles: ganar o perder.

Acerca del trabajoclose

Para este trabajo realice un juego interactivo llamado "RECT-EATER" cuya finalidad era "devorar" los cuadrados rosas antes de que el tiempo se acabara. Utilice condicionales if() y else if() para pasar de un estado/pantalla a otro y para calcular el tiempo del juego. Dentro del estado "JUGAR" realice un ciclo for() para crear las paredes (grilla de filas y columnas), el usuario(cuadrado amarillo) y los cuadrados rosas(objetivos); y, por otro lado, para lograr que e usuario, moviendose con las teclas RIGHT, LEFT, UP y DOWN pueda "devorar" los objetivos y/o chocar con las paredes. Por último, agregué unos creditos finales cuyo código fue rescatado, en parte, del trabajo N°1 "Animando con código."

TP#4: Programando con objetos

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

Acerca del trabajoclose

En este trabajo realicé un videjuego cuya finalidad era golpear mosquitos con una piedra lanzada a través de una gomera. Utilizando la programación orientada en objetos, creé una clase para cada elemento que se moviera en pantalla: una clase Bichos, una clase Piedra y una clase Gomera. Luego, llamé a estas clases a una clase principal llamada clase Juego, en la cual llamé a las funciones de dichas clases, creé una función para permitir el movimiento lateral de la gomera y la piedra; y finalmente creé una función que establecia la colisión entre los bichos y la piedra. Para esto último utilicé un ciclo for(), un dist() para calcular la distancia entre el radio de ambos elementos; y finalmente un condicional if() para hacer que, una vez la distancia entre estos elementos era muy próxima, la piedra y el bicho golpeado desaparencían dandole entender al usuario que ha logrado alcanzar el objetivo.

TP#5: Avanzando con POO

CONSIGNA: crear una aplicación programada íntegramente con POO que incluya: pantalla de inicio, pantallas de desarrollo, créditos, arreglo de objetos, comunicación entre clases y librería de sonido.

Acerca del trabajoclose

Para este último trabajo rescaté, en parte, el código (clases y colisión) del trabajo N°4 "Programando con objetos", y realicé un videjuego del tipo shooter en el cual debes "quemar" a los fantasmas que van pasando en pantalla de izquierda a derecha. Para pasar de pantalla a pantalla (inicio, instrucciones, juego, ganar, perder y creditos; e imagenes de fondo) utilicé el condicional if() y un ciclo for(), junto con una clase Botón que se trataba de un botón que, al ser clickeado, me permitía pasar a la siguiente pantalla, dependiendo en la pantalla en la que el usuario se encontrara en primera instancia. Para el conteo de municiones y puntos volví a recurrir a los condicionales if() y else if(). Por otro lado, la clase Creditos fue creada nuevamente rescatando el código utilizado en trabajos anteriores. Por último, utilicé librerías de sonido SoundFile para la música de fondo y para la colisión entre el fantasma y el fuego.