
Aqui desarrolle un videojueguito de mario con java sin librerias externas. Fue un gran ejercicio de programacion, ya que use varias tecnicas de programacion: como POO, hilos, eventos,etc. Más abajo procedo a explicar mas detalladamente cada tecnica empleada.
En POO use la modularizacion. Cada personaje del juego tiene su propia clase. Existe una Clase abstracta llamada "Enemigo", la cual posee un metodo abstracto en el que se describe el movimiento del enemigo, que es diferente para cada enemigo, de ahi se sigue que cada clase que herede de la clase enemigo tenga que implementar dicho metodo abstracto. En consecuencia, cada openente de Mario debe heredar de la clase "Enemigo".
Use un hilo para que fuera pintando cada cuarenta milisegundos la escena y ademas fuera verificando si se habia producido una colision entre Mario y los enemigos.
Use eventos para poder mover al Mario, en este caso, como use java, utilice la interfaz KeyListener. Cuando se presionan las teclas de las flechas derecha e izquierda el Mario se mueve, cuando presiono la tecla control este salta. Inmediatamente abajo se encuentra un link a un video donde se muestra el videojueguito.

haz click en la imagen para ir al video
Aca hicimos practicamente el mismo juego, solo que este tiene mejores graficas, gracias a ChapGPT. Lo unico diferente es que esta version tiene dos etapas y el suelo no es plano en la segunda etapa
En la segunda etapa se implemento la funcion seno para dibujar el suelo. Cada etapa es un clase abstracta y ademas comparten una interface que contiene solo un metodo abstracto para dibujar el suelo en cada etapa, ademas de calcular la posicion en el eje y en funcion del valor en el eje x.
ChatGPT me proporciono un algoritmo para actualizar es juego con UPS.

haz click en la imagen para ir al video
Esta es una animacion hecha en 3D sin librerias externas en java Swing, aqui ChatGPT me ayudo a calcular las colisiones. La gracia de esta simulacion es que el momentun total del sistema se conserva
En todas las animaciones 3D uso formulas proporcionadas en el tutorial: "Graficas 3D en java sin librerias" de Raul Cosio
Aqui se me ocurrio una idea que me ayudo a pulir ChatGPT, esta es: en cada esfera se calcula la profundidad con respesto a la camara, despues estas se guardan en una lista (aqui me corrigio ChatGPT, ya que inicialmente pense en usar un mapa, y esto eliminaria a las esferas con igual profundidad) para finalmente ordenar la lista en oregen descendente. Con esto el metodo paintComponent imprimira primero las esferas mas distantes

haz click en la imagen para ir al video
Aqui se implemento un cilindro que tiene iluminacion, en la iluminacion me ayudo mucho ChatGPT con las formulas para calcular el factor de intensidad de la luz aplicada a las componentes RGB del cono, donde se aplica el producto punto entre vectores y norma
En todas las animaciones 3D uso formulas proporcionadas en el tutorial:"Gaficas 3D en java sin librerias" de Raul Cosio

haz click en la imagen para ir al video
En este programa se muestran varias animaciones en dos dimensiones, a continuacion les describo tres de ellas.
-Difumacion de imagen: en esta animacion una imagen empieza, por decirlo asi, a desparecer. Para lograr esto se uso un BufferedImage en el se cada cierto intervalo de tiempo se le cargaba un pixel tranparente en una posicion aleateoria dentro de la imagen.
-Desaparicion de letras: para lograr esto se fue cambiando la componente alfa de su reapectivo valor de RGBA, esta componente varia entre 0 y 1, por lo tanto se hizo variar desde uno hasta cero.
-Rotar letras en un circulo: aqui se uso el metodo Rotate y translate de la clase graphics, ademas de usar la represtacion polar de la ecuacion del circulo

haz click en la imagen para ir al video
En este programa cree tres botones, cada uno con una figura de las que parecen en el Paint de Windows. Use drawOval para dibujar elipses, DdrawRect para los rectangulos, y drawLine para las lineas. Use los dos eventos de raton de java. Los dados en las interfaces MouseMotionListener y MouseListener, ya que necesite de mouseDragged para arrastrar la figura y esta se fuera mostrando al momento de ir arrastrando el mouse utilice los metodos de MouseListener.

haz click en la imagen para ir al video
En este programa se creo, con la ayuda de Dios, una simulacion de un gas, donde a este se le aumenta la temperatura por lo tanto cada molecula individual aumenta su velocidad, siendo riguroso en la fisica del problema, aumenta la velocidad promedio de las moleculas

haz click en la imagen para ir al video
Suelo participar en concursos de programacion competitiva, pero no estoy bien ranqueado. El video al que lleva el link que esta abajo, es muy explicativo. Aunque tuvo más de matematica que de algoritmos el ejercicio.

haz click en la imagen para ir al video
Por ultimo queria agradecer a quien siempre me ayuda: Dios todopoderoso.
deja aqui tus comentarios
julio godoy