jueves, 18 de noviembre de 2010

Proyecto Final

Hola compañeros, como se los dije ahora explicaré un poco el código que utilice para realizar mi aplicación.

Bueno tenemos un código principal que se llama Coleccion.java 


En este método lo que hacemos es prácticamente inicializar las variables, y se crean objetos que se utilizarán en el applet, también se definen las funcionalidades. Como pueden ver se inicializan las vidas, que serán 5, la dirección y velocidad con 0 porque aún no tenemos ni velocidad ni dirección, así como el score. Creamos una colección de monedas, una lista enlazada que tiene una secuencia de nodos en los cuales se guardan campos de datos. Creo los tipos de monedas, matonas, regulares y buenas. 

También se le saca el ancho a las monedas tomando la última moneda como referencia, esto es para que al caer las monedas no caigan en el mismo lugar y salgan aleatoriamente en diferentes direcciones, a cada tipo de moneda también se le asigna una imagen. Como java no detecta que tipo de objeto utilizarás, tienes que castearlo, con esto le dices que es un objeto moneda, por esto se pone el (Moneda) monedas.getLast().


Bueno ahora el siguiente método vamos a crear un hilo, esto es par hacer procesos muy largos, por ejemplo si haces un for de 0 a 100000000, se tardaría mucho y el programa no continuaría hasta que no termine este ciclo. Entonces creamos un hilo para poder ejecutar algo en "paralelo" en este caso las monedas irán bajando entonces tenemos un ciclo que va decrementando la posición de las monedas en y para que vayan bajando hasta que toquen la canasta o se salgan de la pantalla. Si pusieras solo un for pues bajaría una moneda cada vez y hasta que no termine de bajar esta moneda bajaría la otra, para esto se utilizan los threads o hilos.


Bueno ahora se reponta el contenido, se actualiza la pantalla, ya que cuando las monedas cambian su posición se debe repintar o refrescar la pantalla. Y el thread se "duerme" por que si no las monedas caerían demasiado rápido, y con esto le das tiempo para que las monedas bajen más lentamente. Y el catch (InterruptedException ex) es por si truena el programa, "cacha" el problema y lo imprime en pantalla.

Ahora utilizamos el método actualiza para actualizar la posición de la canasta. Con un switch para que en un case vaya a la derecha y en el otro a la izquierda 3 lugares.


Bueno ahora utilizamos un método para checar las colisiones de la canasta con el applet y las monedas con el applet o la pantalla.

Como vemos en esta parte donde se checa la colisión de monedas con el applet, se empiezan a restar las vidas por cada moneda que no atrapas con la canasta la moneda matona te quita dos vidas, y las buenas por cada 3 monedas te baja una vida.



Ahora checaré la colision de las monedas con la canasta para sumar el score dependiendo del tipo de moneda y pues al final se elimina la moneda ya que la haya atrapado o también cuando se salga de la pantalla.


Bueno en el siguiente método es el que ya maneja cuando presionas las teclas de dirección del teclado para poder manejar la canasta usando las teclas de dirección derecha e izquierda.



Y por último el método que dibuja la imagen con la posición actualizada y te da un mensaje mientras se esta cargando la imagen.


Bueno estos son los métodos principales, espero hayan entendido y espero también que el problema que me aparece al intentar ingresar a mi aplicación deje de aparecer y funcione bien. Saludos a todos, espero que les haya gustado :D

2 comentarios:

  1. luce interesante eso de las applets la verdad jamas habia escuchado de eso... ojala y lo tengas disponible para poder acceder a el, es lo que tambien yo quisiera pero me marca el mismo error que a ti :( si encuentras como solucionarlo hay me avisas porfas =D
    Suerte!! Saludos ^^

    ResponderEliminar
  2. Buena explicación. Ahorita checo las otras entradas para ver qué te pongo por el proyecto.

    ResponderEliminar