Variables de Juego

Cuando programamos un juego de computadora, la primera cosa que necesitamos que haga es “conocer” cuál es el estado actual del juego. Esto podría incluir la puntuación del jugador, cuantas naves enemigas hay, en qué lugar de la pantalla se encuentran todos los objetos del juego y que están haciendo. Las variables del juego son la parte de nuestro código que nos permite hacer esto.

Acerca de este tutorial

Nivel de habilidad 1
Tiempo de lectura: 10 minutos

Conceptos nuevos

  1. Variables Java
  2. Declaración
  3. Inicialización

Tutoriales de preparación recomendados (Recommended preparation tutorials)

Proyectos relacionados o que demuestran estos conceptos

  • Estableciendo un ambiente de desarrollo para Android

Todas estas cosas son parte de los datos del juego. Y es muy fácil pensar en muchos otros ejemplos de datos que un juego común podría necesitar. ¿Qué hay de las imágenes para los gráficos, qué pasaría si cada objeto tiene una imagen diferente para cada uno de muchos cuadros de animación? ¿Qué hay de los datos para describir el ambiente del juego, inteligencia artificial o el diseño de los diferentes niveles de un juego? Toda esta información, incluso en un simple retro-shooter en 2D por ejemplo, será bastante extensa una vez que se considere todo el juego.

Afortunadamente, el lenguaje de programación Java soluciona estos problemas por nosotros; con variables. Las variables nos permiten almacenar datos fácilmente de una manera significativa, accesible y flexible. Para comenzar veamos unos ejemplos sencillos.

Hace un instante mencionamos que necesitaríamos recordar la puntuación del jugador. Para manejar este dato particular podemos crear una variable en nuestro código y podemos hacerla significativa al darle un nombre apropiado. Llamemos a nuestra variable playerScore.

Convenciones para nombrar variables

Pudiste haber notado que el nombre es simplemente una combinación de las dos palabras, con la primera letra de la primera palabra en minúscula y la primera letra de la segunda palabra en mayúscula. En Java, podemos llamar a nuestras variables de casi cualquier forma como queramos, pero usando nombres relacionados a la función de la variable nunca tendremos dudas sobre la función de la misma. Además, al usar la combinación de minúsculas y mayúsculas adoptamos una convención para el nombramiento. Apegándonos a una convención para el nombramiento especialmente cuando nuestro código eventualmente se vuelva más extenso, este será más fácil de leer y fácil de seguir.

Las convenciones para el nombramiento varían de lenguaje en lenguaje, de compañía a compañía y diferentes preferencias para convenciones particulares abundan. En Java, puedes elegir la convención que desees – a menos que te estén pagando para seguir una convención específica. Aquí estamos usando la simple palabra en minúscula seguida de una palabra en mayúscula porque hace a la segunda palabra distinguible y cuando introduzcamos más tipos de código Java más adelante en el curso hará a nuestras variables resaltar de otros tipos de código.

Tipos de variables Java

La siguiente que debemos hacer, antes de que podamos empezar a escribir el código para nuestras variables, Java nos obliga a decidir qué tipo de variable será. Los tipos son simples de entender. Solo debemos pensar en qué tipo de información almacenará cualquier variable particular. En el caso de nuestra variable playerScore, estamos almacenando un número, una puntuación. Pero consideremos otros tipos potenciales de variables.

Que hay de el nombre del jugador, tal vez podríamos usar una variable llamada playerName. Aquí no queremos almacenar un número sino una colección de letras del alfabeto que forman el nombre del jugador. Piensa también en qué tipo de datos almacena si algo ha ocurrido – o no, que sea verdadero o falso. Esto es mucho más común de lo que podría parecer y en breve veremos ejemplos que podrían ayudar. También considera que podríamos necesitar diferentes tipos de números, al igual que en el mundo real. Números enteros, fracciones, etc.

Para evitar cualquier ambigüedad acerca de qué tipo una variable es, Java nos hace declarar un tipo antes de que podamos usar una variable. Esto hace explicito que tipo de datos se almacenarán en esa variable. Java entonces sabe cuánto espacio se requiere, pero también porque nos puede ayudar aplicar reglas sobre el correcto uso de diferentes tipos. A medida que progresemos con este curso de Java y completemos nuestros primeros proyectos veremos que esta es una característica muy útil.

Echemos un vistazo a algunos tipos comunes en Java. La lista debajo apenas es una fracción del rango de tipos disponibles; todos los tipos de variables deberían ser bastante sencillos con la excepción de un tipo de variable muy poderoso, conocido simplemente como un object (objeto) o class (clase), el cual será cubierto en el tutorial Entendiendo OOP para programar juegos en Java. Podemos escribir casi cualquier juego solo con estos siete tipos.

Tipo Explicación

  • int: para números enteros, negativos y positivos. Números en el rango de +- 2,147,483,647
  • String: Para almacenar cualquier información textual. Desde el nombre de un jugador hasta un libro pequeño
  • float: Para almacenar números con un punto flotante. Números con una fracción decimal (1.5 o 3.141, etc.)
  • long: para almacenar números con un valor mayor al límite de int. Números hasta +- 9,223,372,036,854,775,807
  • boolean: Esta es una variable especial que puede ser solo dos valores; verdadero o falso. Este tipo de variable es perfecta para hacer decisiones acerca de que acción tomar. ¿El enemigo está disparando? ¿se acabó el juego? Y mucho más.
  • Array: está denotado por los símbolos []. Y son usados para almacenar grupos de cualquier tipo de variables. Tal vez una flota entera de naves alienígenas. Cubriremos los arreglos en el tutorial Manejando datos de juego con arreglos Java
  • Clases y objetos: las clases y objetos pueden ser casi cualquier cosa. Son un tipo especial de variable que no solo almacena valores sino también comportamiento. El jugador, un personaje del juego o incluso el juego mismo pudiera ser un objeto.

Table index: la tabla muestra los siete tipos clave de variables que nos permitirán hacer casi cualquier juego. La última es la más poderosa de todas y será explicada en el nivel 2.

Cómo funcionan las variables

Podemos pensar de una variable como un tipo de espacio de almacenamiento. Y cuando declaramos una variable junto a su tipo Java no solo reserva un espacio en la memoria, apropiado para ese tipo, pero también vincula el nombre de la variable a su espacio respectivo. Así que cuando hagamos referencia a playerScore accedemos a cualquiera que sea el valor almacenado en una ubicación en la memoria apartado para ella. No necesitamos preocuparnos de cómo funciona o donde se ubica en la RAM de nuestra computadora. Esto nos deja libres para trabajar en los aspectos importantes de nuestro juego sin preocuparnos de cómo es manejada la memoria del computador en cual sea el hardware en el que corre nuestro juego.

Esto sucede en dos pasos; declaración seguido por inicialización. Ya mencionamos que debemos declarar nuestras variables así que echémosle un vistazo a como se vería ese código y luego veremos cómo se vería el segundo paso, inicialización.

Declarando una variable

Podemos declarar una variable en Java de esta manera:

Arriba simplemente planteamos el tipo seguido del nombre de la variable y terminamos la línea con un punto y coma. Añadimos el punto y coma al final de la línea para decirle al compilador de Java que ese es el fin de la línea.

En la línea 1 de nuestro código tenemos a variable de tipo int (para números) llamada playerScore y en la línea 2 una variable de tipo String (para datos textuales) llamada playerName. Siguiente, en la línea 3 tenemos una variable de tipo float llamada valuePi que puede contener una fracción decimal que pudiera representar a pi (3.141…). Abajo, en la línea 4 declaramos una variable de tipo long para que contenga un valor bastante grande, sugerido por su nombre, el número de milisegundos desde el inicio de 1970. Esto es sorprendentemente útil como veremos cuando hagamos nuestro primer juego.

Nota en los ejemplos de arriba y en los ejemplos siguientes que hemos omitido discusiones acerca de los arreglos y objetos.

Inicializando una variable

Nota en el final de la inicialización float que anexamos una f. Esto Java lo requiere para distinguir el número de otros tipos de punto flotante que Java puede utilizar. Opcionalmente podríamos combinar la declaración e inicialización en un paso, así:

Declarando e inicializando en un solo paso

Recuerda que Java nos ayuda a aplicar las reglas sobre los tipos de variables. Así que no podríamos hacer esto:

Los tipos importan y no pueden usarse con el tipo de datos incorrectos

¿Qué sigue?

Claro, para hacer útiles a nuestras variables necesitamos ser capaces de leerlas y manipularlas. Así que aprendamos acerca de cambiar el valor de variables del juego por expresiones. O, si no lo has hecho todavía, podrías considerar estableciendo un ambiente de desarrollo para Android