Aprender Java creando un juego (Parte 2)

Buen día a todos mis lectores, hoy, les tengo un tema muy interesante, como ya habrán visto en las letras grandes de arriba, se trata de cómo iniciar nuestro primer juego de computadora en Java en el entorno Greenfoot, este articulo es la segunda parte de un proyecto de varias partes, para ver la primera click aquí , les dejo la información...

Tener un gráfico animado en pantalla en la primera parte es bastante bueno, pero se pone aburrido después de un rato si no puedes hacer nada más con él, así que hoy, te diré como añadir interacción con el teclado (eso es, cómo controlar el movimiento de tu tortuga usando teclas), que quizá sea el primer paso en un pequeño juego de computadora.

Comenzando
Cuando dejamos el método act de nuestra tortuga la última vez, se miraba así:

Observamos que esto causaba que la tortuga corriera en un círculo, porque el método act es repetidamente ejecutado cuando el programa corre:



Ahora, queremos que cada tortuga vaya en línea recta cuando no presionamos nada en nuestro teclado y que gire a la derecha o izquierda si presionamos las teclas de dirección de derecha o izquierda.

Para lograr esto, necesitamos dos cosas:
  • Necesitamos poder revisar cuando una tecla ha sido presionada.
  • Necesitamos tener una sentencia en Java que nos permita ordenar que queremos girar la tortuga sólo si la tecla de dirección derecha o izquierda ha sido presionada.

Revisando si se ha presionado una tecla

Greenfoot tiene un método, llamado isKeyDown, que nos permite revisar cuando se ha presionado cierta tecla. Éste método está en la clase Greenfoot. Podemos, por ejemplo, escribir lo siguiente para revisar cuando la tecla de dirección izquierda está siendo presionada:
El parámetro (dentro del paréntesis) es el nombre de la tecla que queremos revisar. Las teclas alfabéticas tienen el nombre de su carácter como su nombre (por ejemplo, la tecla A es llamada a, la tecla B es llamada b, y así sucesivamente). Las teclas especiales de control tienen nombres indicando lo que son; por ejemplo, left (izquierda en español) es el nombre de la tecla de dirección izquierda y—como habrás adivinado—right (derecha en español) es el nombre de la tecla de dirección derecha. El método isKeyDown, cuando se le llama, va a responder con un valor ya sea true (verdadero, la tecla de dirección izquierda se ha presionado) o false (falso, la tecla no está siendo presionada).


Una Sentencia if
La segunda parte que necesitamos para hacer que nuestro plan funcione es una sentencia que nos permita ejecutar una acción (en nuestro caso, girar) sólo durante ciertas condiciones (cuando la tecla de dirección derecha o izquierda es presionada). Esto es llamado una sentencia if. Una sentencia if tiene la siguiente forma general:

Cuando una sentencia if es ejecutada, revisa la condición, y entonces ejecuta solamente las sentencias que están entre sus llaves { } si la condición es true. (Incidentalmente, quizá sea bueno introducir una terminología más profesional: La parte de la sentencia if que contiene las sentencias—sus llaves { } y todo lo que esté entre ellas—se llama el cuerpo de la sentencia if.) El cuerpo quizá contenga una secuencia completa de sentencias si eso es lo que queremos.


Si la condición es false, el cuerpo es solo ignorado, y la ejecución continúa después de la sentencia if (y sus llaves).

Girando la tortuga al presionar una tecla
Con estos dos puntos reunidos, ahora podemos hacer lo que necesitamos. Necesitamos escribir lo siguiente:

Este no es código Java real (se llama pseudocódigo).
Ahora podemos llenar el pseudocódigo con código Java real:
Este código ahora indica que vamos a girar menos 3 grados durante cada ciclo act en el cual la tecla de dirección izquierda (left) esté siendo presionada. (Noten que podemos usar un ángulo negativo para girar a la derecha.)

Haciendo lo mismo para la tecla de dirección derecha (right) para girar a la derecha es ahora simple. Solamente escribimos una sentencia similar nuevamente, pero esta vez girando 3 grados para la tecla de dirección derecha. El nuevo método completo act se muestra a continuación: 

Pruébalo. Compila tus clases, pon una tortuga en el mundo, y corre el scenario.

Ahora puedes controlar una tortuga en tu pantalla con las teclas de dirección. ¡Bastante divertido hasta ahora!

Actualmente, la tortuga continuamente va a caminar hacia adelante. Si tú quieres, puedes cambiar tu código para que la tortuga se mueva hacia adelante sólo cuando presiones la tecla de dirección arriba. Podrías hacer eso añadiendo otra sentencia if alrededor de la sentencia move(4). El nombre de la tecla de dirección arriba es up.

Y bueno, eso es todo por esta entrada, pero no para el proyecto, en la siguiente entrada veremos cómo darle algo que hacer a nuestra tortuga: ¡Comer! Espero hayan disfrutado este artículo y “nos vemos” en el siguiente, saludos.

Traducción: El Blog De Baro.
Escrito por: Michael Kölling.

Comentarios