Bienvenidos sean a este post, hoy veremos la primera de las multiples clases en el segundo proyecto.
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);
}
}
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);
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.
Nota: Cuando veamos a la clase PongJuego solucionaremos todos los inconvenientes que tenemos ahora.
Nuestra ultima modificacion en esta clase sera agregar los siguientes dos metodos:
@Override
protected void onResume(){
super.onResume();
}
@Override
protected void onPause(){
super.onPause();
}
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();
}
}
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.
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.
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