programando-un-juego-de-breakout-para-android

Programando un juego de Breakout (Arkanoid) para Android

En este proyecto construiremos una versión en Android verdaderamente sencilla pero muy divertida del videojuego clásico Breakout. Conocido a menudo como el juego “Brick Breaker” la historia del juego es interesante y si te gusta la nostalgia te recomiendo que leas esto History of Breakout (Historia de Breakout). Breakout a veces llamado Arkanoid fue desarrollado por Atari a los inicios de los 70s y fue algo así como un sucesor espiritual de Pong.

Lo que lo hacía interesante en el momento era que tenía todas las mecánicas de juego introducidas por Pong, y algunas extras pero era solamente para un solo jugador. Construyamos un juego de Breakout/Arkanoid.

Acerca de este proyecto

  • Nivel de experiencia 1
  • Tiempo para completarse 1 hora

Conceptos nuevos:

  • Haciendo el juego pantalla completa
  • Una mirada más cercana a los especificadores de acceso
  • Una mirada más cercana a OOP con métodos Setter y Getter
  • Construir clases para representar objetos del juego
  • Detección de colisión simple en la práctica
  • Métodos estáticos

Tutoriales de preparación recomendados

  • Todos los tutoriales de Java de nivel 1

Experiencia previa pretendida

  • Conoce donde quieres empezar
  • Preparar Android Studio
  • Construyendo tu primer juego de Android
  • Desplegando tu primer juego de Android
  • Demo variables de juego
  • Demo chequeando las condiciones y ramificaciones
  • Demo de bucles
  • Demo trazando gráficas
  • Demo reproduciendo efectos de sonido
  • Construyendo un motor de juego sencillo

Discutamos nuestro código inicial. Es básicamente el mismo que el de nuestro código para el sencillo motor de juego así que échale un vistazo a ese proyecto si algo de esto no se te hace familiar. Los únicos cambios son que he eliminado las variables que usamos para controlar a Bob así como el código para actualizarlo y trazarlo. También he dejado el código para detectar las pulsaciones en la pantalla pero removí el código que acciona el movimiento de Bob. Adicionalmente, he hecho más apropiado el nombre de la clase interna. Así que ahora extendemos SurfaceView para crear una clase llamada BreakoutView y crear un objeto de ella llamado breakoutView. Como antes fijamos este objeto para que sea la vista de la pantalla.

Así que nos quedamos con un BreakoutView cuyo método run (correr) constantemente llama a update (actualizar) y draw (trazar) mientras monitorea los cuadros por segundo. Hay un leve cambio en el método run porque he envuelto el llamado a update con una declaración if(!paused) para que el jugador pueda iniciar el juego con un toque en la pantalla. Construimos clases para representar la raqueta del jugador, una unidad de ladrillo y por supuesto la pelota. Después veremos cómo podemos usar estos objetos de estas clases para hacer nuestro juego.

Crea un nuevo proyecto en Android Studio, llámalo Juego de Breakout y nombra la actividad BreakoutGame luego introduce el código ligeramente modificado del sencillo motor de juego que acabamos de discutir. Puedes ejecutar este código pero todo lo que obtendrás es una pantalla en blanco.

Bono de descarga

Todo lo que necesitas puede ser copiado y pegado o descargado de las cuatro páginas que conforman este tutorial. Sin embargo si eres tan gentil como para hacerle like/tweetear/+1 a mi página entonces el pequeño artilugio de abajo desbloqueará un archivo zip que contiene todo el código fuente agradablemente presentado y efectos de sonido también.

También, nota que todas las descargas bonus para este y cada uno de los tutoriales futuros están disponible en un área exclusiva de para mi suscriptores de Patreon.

patreon-medium-banner

Ahora haremos algo nuevo.

Haciendo el juego pantalla completa en orientación de paisaje

Making the game full-screen landscape (Haciendo el juego pantalla completa en orientación de paisaje)

Queremos usar cada pixel que el dispositivo tenga para ofrecer así que haremos cambios a los archivos de configuración AndroidManifest.xml de la aplicación.

  1. En el panel explorador en Android Studio haz doublé click en la carpeta manifests (manifiestos), esto abrirá el archivo AndroidManifest.xml en el editor de código
  2. El archivo AndroidManifest.xml encuentra la siguiente línea de código, android:name=”.BreakoutGame”
  3. Inmediatamente debajo escribe o copia y pega estas dos líneas para hacer correr el juego en pantalla completa y bloquearlo en orientación de paisaje.

Eso es. Si corres el juego estará en pantalla completa y en orientación de paisaje. Nota que algunas tablets no permiten verdadera pantalla completa

Obteniendo la resolución de pantalla

En este proyecto, haremos un sistema mucho más completo que en nuestro motor de juego simple. Habiendo dicho esto aún no haremos un motor de juego en su plenitud; progresaremos en complejidad a un paso constante con cada proyecto de juego. Una mejora que este juego tendrá es que detectaremos y responderemos a las resoluciones individuales de los dispositivos dónde nuestro juego Breakout tal vez corra. Añade dos variables para contener la resolución vertical y horizontal del dispositivo justo después de la declaración de timeThisFrame. Para más contexto, puedes ver el listado completo de BreakoutGame.Java al final de esta página.

Ahora podemos inicializar esas variables a través de un objeto de tipo Point usando un objeto Display (mostrar) en el próximo bloque de código. Añade este código en el constructor de BreakoutView justo después que inicializamos paint.

Programando un juego de Breakout (Arkanoid) para Android: Parte 2

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *