Anuncios

Bienvenidos sean a este post, hoy veremos la primera de las multiples clases en el segundo proyecto.

Anuncios
Anuncios

En nuestro primer proyecto, Cazador de Submarinos, trabajamos directamente sobre una clase la cual era la actividad (MainActivity) pero en esta hemos decidido descomponer esa clase en multiples, suena a mas complicacion pero cuando lo terminemos veremos como nos facilito su comprension y como nos va a ser mas facil de manejar, esta clase se encargara basicamente de manejar el inicio y final del juego asi como otros temas relacionados a la resolucion, en cambio en otra clase veremos como hacer todas las acciones del juego y podemos considerarlo como el “game engine”, este nuevo concepto nos permitira crear mas y mejores opciones para nuestros futuros proyectos.

Comencemos con nuestra clase PongActivity, la cual hemos renombrado en nuestro post anterior, modificando el codigo generado automaticamente con el siguiente:

PongActivity.java

package org.example.pong;

import android.app.Activity;
import android.graphics.Point;
import android.os.Bundle;
import android.view.Display;

public class PongActivity extends Activity {

    private PongJuego mPongJuego;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Display display = getWindowManager().getDefaultDisplay();
        Point tamano = new Point();
        display.getSize(tamano);

        mPongJuego = new PongJuego(this, tamano.x, tamano.y);
        setContentView(mPongJuego);
    }
}
Anuncios
Anuncios

En este caso primero modificaremos a que vamos a extender porque lo modificaremos a Activity, luego crearemos un objeto de tipo PongJuego al cual llamaremos mPongJuego, nuestro siguiente paso sera usar a super para modificar el onCreate de la clase maestra despues crearemos un objeto de tipo Display llamado display al cual le asignaremos la pantalla predeterminada, para nuestra siguiente linea crearemos un objeto de tipo Point llamado tamano, la cual usaremos para recuperar el tamaño a traves de la siguiente linea:

display.getSize(tamano);
Anuncios

Despues vendran dos lineas las cuales quedaran con error pero pronto lo solucionaremos, la primera sera usar un constructor para nuestro objeto mPongJuego donde le pasaremos la vista (this), el eje X y el eje Y por medio de tamano, como este constructor aun no lo definimos quedara como error, para la siguiente linea setearemos el contenido de la vista pero como el anterior todavia no existe lo mismo ocurre que la linea anterior.

Anuncios
Nota: Cuando veamos a la clase PongJuego solucionaremos todos los inconvenientes que tenemos ahora.
Anuncios

Nuestra ultima modificacion en esta clase sera agregar los siguientes dos metodos:

    @Override
    protected void onResume(){
        super.onResume();
    }

    @Override
    protected void onPause(){
        super.onPause();
    }
Anuncios

Estas dos funciones las definiremos de esta forma aunque en realidad por ahora no las usaremos pero mas adelante hablaremos bien a fondo cuando nos toque el tema de los ciclos de vida, pero resumiendo por ahora se encargaran de pausar y retomar a nuestra clase maestra, veamos como quedo hasta ahora nuestro codigo:

package org.example.pong;

import android.app.Activity;
import android.graphics.Point;
import android.os.Bundle;
import android.view.Display;

public class PongActivity extends Activity {

    private PongJuego mPongJuego;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Display display = getWindowManager().getDefaultDisplay();
        Point tamano = new Point();
        display.getSize(tamano);

        mPongJuego = new PongJuego(this, tamano.x, tamano.y);
        setContentView(mPongJuego);
    }

    @Override
    protected void onResume(){
        super.onResume();
    }

    @Override
    protected void onPause(){
        super.onPause();
    }
}
Anuncios

Con esto ya tenemos una de las primeras clases confeccionadas pero este codigo por ahora no funciona aunque volveremos mas adelante para completar las funciones que agregamos a lo ultimo.

Anuncios

En resumen, hoy hemos creado la base de nuestro codigo, hemos creado el objeto de una clase que confeccionaremos mas adelante, tambien hemos visto como obtener el tamaño de nuestra pantalla, y como usaremos una clase como vista, en los proximos posts iremos completandolo mas, 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