Aprender Java creando un juego (Parte 1)


Buen día a todos mis lectores, hoy les tengo la primera parte (Parte 2 aquí) de un interesante proyecto de varias partes, se trata del inicio de un pequeño juego para computadora, lo mejor de todo, es que está diseñado para aprender los conceptos básicos de la programación orientada a objetos, así que si eres principiante en Java ¡Esto es perfecto para ti! No se necesitan conocimientos avanzados del lenguaje ni de la programación orientada a objetos (POO) en general, aquí les va...
En este articulo, vamos a saltar directos a comenzar nuestra propia clase. En el proceso, vamos a aprender acerca de objetos, métodos y parámetros.

Prerrequisitos
Para poder continuar, necesitarás que el siguiente software esté instalado en tu computadora:

  • Plataforma Java (Descargar), Edición estándar (Java SE por sus siglas en inglés)
  • Greenfoot  versión 2.1.0 o una más nueva. Asegúrate de que tengas una versión suficientemente buena de Greenfoot. Puedes revisar la versión que tienes usando el artículo de menú About Greenfoot.


Creando nuestro propio proyecto
Greenfoot llama a sus proyectos scenarios. Así que la primera cosa que haremos, es crear un nuevo scenario.
  1. Inicia Greenfoot.
  2. Greenfoot usualmente abre el último scenario en el que trabajaste. Ciérralo seleccionando la función Close del menú Scenario.
  3. Selecciona New del menú Scenario.
  4. En la caja de dialogo New Scenario, pon de nombre turtle al nuevo scenario y da click en OK.


Deberías ahora tener una nueva ventana scenario que es principalmente gris, como se muestra a continuación:


Ahora tenemos el caparazón de un nuevo scenario, un lugar donde podemos empezar a trabajar. No tenemos un mundo aún para hacer que cosas pasen en él, y no tenemos actores que puedan hacer cosas.

Las dos clases que se ven en el lado derecho de la ventana, World (Mundo en inglés) y Actor, son superclases. Ellas no son ni un mundo especifico ni un actor especifico, son mejor dicho descripciones de todos los mundos y actores posibles.
Vamos a crear un mundo específico y actores creando subclasses de éstas. Las subclases representan especializaciones de las superclases. Vamos a comenzar haciendo un mundo.

Creando un nuevo mundo

  1. Da click derecho en la clase World (La caja color beige) y selecciona la función New Subclass.

Una caja de dialogo nos pide un nombre y una imagen para la nueva clase como se muestra a continuación:


  1. Nombra a tu clase TurtleWorld, y selecciona una imagen de la categoría Backgrounds de la librería de imágenes. Para los pantallazos en este artículo, se seleccionó una imagen de fondo llamada weave.jpg.
  2. Da click en OK entonces click en el botón Compile en la ventana principal de Greenfoot. Deberías ver aparecer un mundo en la ventana Greenfoot con tu fondo seleccionado como se ve a continuación:




Ahora que hemos creado un mundo, estamos listos para crear actores para ponerlos dentro del mundo.

Una Nota Lateral Sobre Compilar
Cuando programamos, escribimos código Java. Desafortunadamente, las computadoras no pueden ejecutar el código Java directamente. Necesitan sus instrucciones en un lenguaje de máquina especializado.

Afortunadamente, hay una solución fácil: El compilador. Un compilador es un software que puede trasladar código Java en lenguaje máquina. Cada vez que creamos una nueva clase o haces cambios al código fuente de una clase existente, la clase necesita ser trasladada nuevamente a lenguaje máquina. Puedes hacer esto fácilmente dando click en el botón Compile.

En Greenfoot, una clase aparece a rayas si no ha sido compilada desde el último cambio como se muestra a continuación:



Una vez que damos click en el botón Compile y la clase es trasladada, las rayas desaparecen, y la clase está lista para usar:




Creando un actor
Ahora tenemos un mundo en el que nuestros actores pueden vivir. De todas formas, no tenemos un actor para hacer nada aún. Así que vamos a hacer un actor.

  1.  Click derecho en la clase Actor y selecciona la función New subclass.
  2.  En la caja de dialogo resultante, nombre la nueva clase Turtle, y selecciona la imagen turtle2.png de la categoría Animals como se muestra en la imagen (bajo el punto 4).
  3. Click OKAhora tenemos una nueva clase Turtle en nuestro scenario. Nota que esta clase está inicialmente rayada (eso significa, sin compilar).
  4. Click en el botón Compile para compilar la clase.



Nota que por convención, los nombres de las clases Java siempre comienzan con letra mayúscula.

Creando Objetos
Ahora tenemos una clase actor (Turtle), pero no tenemos objetos actor todavía. Click derecho en la clase Turtle y selecciona new Turtle(). Esto crea un objeto tortuga—que es, un actor real—el cual se puede poner entonces en el mundo.

Eso es. Acabas de crear tu primera tortuga. Nota que se pueden crear tantas tortugas como quieras. Haz la prueba.

Programando tus objetos
  1. Click en el botón RunNotarás que nada pasa al presionar tal botón, nuestra tortuga sólo se sienta ahí, sin hacer nada. Eso es porque no hemos programado a nuestra tortuga para que haga algo. Así que aquí es donde la diversión comienza. Vamos ahora a comenzar a programar en Java para hacer a la tortuga actuar.
  2. Abre el editor para Turtle haciendo doble click en la caja de clase Turtle. Verás algo de código para la clase Turtle como se muestra a continuación:



Nos vamos a concentrar en el método act. Ésa es la parte del código que se ve así:

Esta parte del código especifica lo que la tortuga hace cuando actúa. El código entre las llaves {  } es ejecutado cada vez que la tortuga actúa. En este caso, todo lo que está escrito aquí es lo siguiente:

// Add your action code here.

La doble barra al inicio de la línea marca esta línea como un comentario. Es ignorado por el sistema Java y es sólo un recordatorio para el programador humano. En otras palabras, este método act no contiene código alguno. Ése es el porqué de que nuestra tortuga no haga nada.

Vamos a cambiar eso.

  1. Reemplazar el comentario con una instrucción de tal manera que nuestro método act se mire así: 
  2. Compila, crea una nueva tortuga, y trata de dar click en el botón Act y en el botón Run
    Así que, ¿qué acabamos de hacer? 
    La instrucción move(2);  le dice a la tortuga que se mueva 2 pixeles adelante. La tortuga hace esto cada vez que actúa. Cuando das click en el botón Act, el método act es ejecutado una sola vez, así que la tortuga se mueve un poquito (2 pixeles) a la derecha. Dando click al botón Run se llama al método act una y otra vez (hasta que lo pauses otra vez), así que la tortuga se sigue moviendo.
  3. Experimenta con valores diferentes de 2. ¿Qué pasa cuando usamos 20 en lugar de 2?
  4. Trata con otra instrucción reemplazando la instrucción move(2);  con esta instrucción:



Recuerda: Cambia el código, compila, crea una nueva tortuga, y entonces ejecuta (Run). Experimenta con diferentes valores aquí también.

Métodos y Parámetros
Así que, ¿qué acabamos de hacer?

Hemos llamado (o invocado) a un método llamado move y a un método llamado turn, y hemos pasado un parámetro, 2, para cada uno de ellos.

Un método es un poco del comportamiento que un objeto sabe ejecutar, y todos los actores conocen los métodos move y turn (quiere decir que ellos saben cómo moverse y girar).

Ambos métodos esperan un parámetro, el cual es un poco de información adicional que les dice exactamente qué tan lejos moverse o qué tanto girar. Amos métodos esperan un numero como parámetro, y nosotros suplimos ése número escribiéndolo entre paréntesis después del nombre del método. Y cada instrucción en Java es finalizada con un punto y coma (;).

Errores
Quizá te hayas dado cuenta que necesitas escribir el código muy precisamente. Teniendo siquiera un carácter mal hace que el programa completo no trabaje. El compilador entonces reporta un mensaje de error, y necesitas arreglar el código. Si no has visto un mensaje de error aún, trata ahora. Por ejemplo, borra el punto y coma (;) después de tu instrucción y trata de compilar. Verás a lo que me refiero.

Secuencias de instrucciones
Puedes escribir múltiples instrucciones, tantas como quieras, en el método act. De hecho, puedes escribir una tras otra:


Intenta esto. Además, pon varias tortugas en el mundo, y experimenta con diferentes valores en los parámetros para los métodos move y turn:



Resumen
En este artículo, aprendimos los primeros pasos para escribir tu propio código Java, que demuestran los siguientes principios:

  • Que el comportamiento de un objeto está especificado en la clase del objeto.
  • Más precisamente, el comportamiento de un objeto está especificado en una definición de método en la clase del objeto.
  • Las clases Actor en Greenfoot tienen un método llamado act que especifica su comportamiento principal.
  • El cuerpo del método (la parte entre las llaves { } ) contiene el código que determina que hace el método cuando es llamado.
  • Las instrucciones pueden ser especificadas llamado a los métodos existentes (como move y turn en nuestro ejemplo).
  • Las llamadas a los métodos consisten del nombre del método que estás llamando seguido por parámetros en paréntesis.
  • Todas las instrucciones son terminadas con un punto y coma (;).
  • Podemos además escribir secuencias de instrucciones.

Y bien, esto es todo para la primera parte de este interesante proyecto, no tardo en subir las demás, cualquier duda, comentario, petición o critica, en la parte de abajo, saludos. 

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

Comentarios

  1. Eres un máquina, gracias por la aportación, no conicia Greenfoot, espero saques una 2ª parte.
    Saludos

    ResponderEliminar
    Respuestas
    1. Hola Anónimo, de hecho hay ya 6 partes en mi blog, están en la parte de arriba donde pone "Entradas relacionadas:" (en color azul) o igual aquí en la barra lateral donde pone "Archivo del blog" en septiembre saludos y gracias por la visita :D.

      Eliminar
  2. Muchas gracias, y la verdad que sí, ojala yo hubiera aprendido de ésa manera desde el comienzo, aunque igual no se me complicó mucho aprender programación, saludos y de nuevo gracias :D.

    ResponderEliminar

Publicar un comentario