Anuncios
Anuncios

Bienvenidos sean a este post, en el post de hoy continuaremos con el proyecto Sub hunter iniciado en el post anterior.

Hasta ahora todavia no explicamos de que va nuestro proyecto, este juego sera un clon del buscaminas, los personas mayores sabran de que hablo, pero en nuestro proyecto el objetivo es buscar y hundir el submarino enemigo en la menor cantidad de movimientos posibles, para ello vamos a estudiar y aplicar varios elementos en nuestro proyecto:

  • Crearemos una grilla para mostrar en pantalla
  • Esconderemos de forma aleatoria un submarino en un lugar de la grilla
  • Crearemos una pantalla de victoria
  • Tambien veremos el debugging del proyecto

Pero antes de comenzar con esto vamos a ver como sera nuestro diagrama de flujos para el proyecto:

Anuncios
Anuncios

Primero iniciamos el juego, ejecutaremos una configuracion unica, luego resetearemos el puntaje, dibuja la grilla y el juego espera por si presionan la pantalla, una vez presionado considera que el jugador dispara, se pregunta si impacto al submarino, si no lo hizo vuelve a generar la grilla y espera por la entrada pero si impacto muestra un cartel de explosion y que se presione la pantalla, si lo hace vuevle a resetear el puntaje y repite el ciclo nuevamente.

Con esto ya tenemos nuestro proyecto creado y nuestro juego planeado, ahora comenzaremos a hablar sobre los metodos de Java que usaremos para nuestro juego, los metodos son tambien llamadas funciones.

Una funcion es una accion que podra ejecutar nuestro codigo, su sintaxis es igual a la de lenguajes como C++, donde ptimero definiremos que tipo de dato va a manejar, despues podremos distintos modificadores como public, private o static dependiendo de los niveles de acceso que van a tener, deben llevar un nombre para identificarlo y como opcional puede recibir valores a traves de unos argumentos entre parentesis, y por ultimo el valor a retornar siempre debe ser igual al asignado al principio, es decir si usan int debe devolver un valor entero, si es string debe ser una texto, etc.

Anuncios
Nota: Cuando no sabemos cual valor va a devolver o el mismo no es coincidente con los disponibles se utiliza el void.
Anuncios

Para esto vamos a ingresar a nuestra clase MainActivity y vamos a modificar el codigo existente (generado automaticamente) por el siguiente:

MainActivity

package org.example.cazadordesub;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;

public class MainActivity extends Activity {
    int numHorPixels;
    int numVerPixels;
    int tamBloque;
    int ancGrilla;
    int altGrilla;
    int vertTocado;
    int horizTocado;
    int subHorPosicion;
    int subVerPosicion;
    boolean toque;
    int disparos;
    boolean depuracion;
    int distDesdeSub;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    void dibujar()
    {
    }

    void nuevo()
    {
    }

    void disparar()
    {
    }

    void imprimirDebug()
    {
    }

    @Override
    public boolean onTouchEvent(MotionEvent evento)
    {
    }
}
Anuncios
Anuncios

En este caso no tenemos todavia un codigo funcional pero si agregamos nuestras variables y funciones que usaremos en el proyecto, primero veamos las variables:

  • numHorPixels, sera para el numero de pixeles horizontales
  • numVerPixels, idem al anterior pero para los verticales
  • tamBloque, guarda el tamaño del bloque
  • ancGrilla, sera para guardar el ancho de la grilla
  • altGrilla, ideam al anterior pero para la altura de la grilla
  • vertTocado, posicion vertical de tocada la pantalla
  • horizTocado, posicion horizontal de tocada la pantalla
  • subHorPosicion, posicion horizontal del submarino
  • subVerPosicion, posicion vertical del submarino
  • toque, valor booleano para indicar si fue tocado el submarino o no
  • disparos, la cantidad de disparos realizados
  • depuracion, valor booleano para indicar si se activo o no la depuracion (imprimirDebug)
  • distDesdeSub, la distancia del disparo contra el submarino
Anuncios

Las variables a las cuales no se les especifico el tipo son de tipo entera (int). continuemos con las funciones en el codigo:

  • onCreate, este sera el encargado de levantar nuestro layout en XML
  • dibujar, sera el encargado de dibujar todo en pantalla, interfaz, puntaje y hasta el boom!
  • nuevo, sera el encargado de crear un nuevo juego cuando sea necesario
  • disparar, sera el encargado de hacer la accion cuando se toca la pantalla
  • boom, es el encargado del boom
  • imprimirDebug, nos mostrara los datos para ver el debug del juego
  • onTouchEvent, este sera el verdadero metodo encargado de monitorear nuestra pantalla si se toca o no
Anuncios

Como pueden ver cada metodo tomara sobre cada una de nuestras acciones en el juego y si lo probamos nos devolvera un error porque todavia no hemos configurado correctamente a onTouchEvent.

Anuncios

En resumen, hoy hemos planeado nuestro juego, hemos visto el diagrama de como actuara el juego, tambien hemos visto como va a ser la estructura de nuestro codigo principal, espero les haya gustado sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00