Videojuegos android

Tutorial videojuegos: Variables de juego persistentes (SharedPreferences)

Comparte este artículo

Capítulo 1 del curso de programación de videojuegos: Variables de juego persistentes, SharedPreferences

Hoy hablaremos de las variables persistentes en los videojuegos.

 

Variables de juego persistentes (SharedPreferences)

A veces es necesario guardar determinados datos durante el juego para que estén disponible en ejecuciones posteriores. Ejemplos de estos datos son: puntuaciones, progreso del jugador, mapas creados por el jugador, etc. Esto puede hacerse de forma muy sencilla usando una característica de la programación Android que se llama SharedPreferences. Las SharedPreferences son “cajones” persistentes donde podemos guardar cualquier tipo de información, desde cadenas hasta booleanos pasando por enteros. Estos cajones son persistentes hasta que el usuario borra los datos de la aplicación para liberar espacio o desinstala la app.

Inserción de datos en las SharedPreferences

Os ponemos un poco de código para mostraros cómo se meten varias variables en las SharedPreferences (enteros, booleanos y strings)

// Le indicamos el nombre de las variables
String fileName = "super_juego";

// Creamos la sharedPreferences en modo privado
SharedPreferences shared =context.getSharedPreferences(fileName, Context.MODE_PRIVATE); 

SharedPreferences.Editor editor = editor = shared.edit();

// Ponemos en la variable nombreUsuario el valor oscar
editor.putString("nombreUsuario", "Oscar");

// Ponemos en la variable puntos el valor 100
editor.putInt("puntos", 100);

// Ponemos en la variable activo el valor false
editor.putInt("acgtivo",false);

// La cargamos (esto solo se hace al final de varios puts
editor.commit();

En mis videojuegos yo me he creado una librería que gestiona las shared preferences para evitar tener que hacer todas esas líneas, yo tengo una clase que simplemente “encapsula” los put, a la que llamo con una sola linea y ella se encarga de hacer los put, los commit, etc independientemente del tipo de dato que sea. 

Carga de datos en las SharedPreferences

// Le indicamos el nombre de las variables
String fileName = "super_juego";

// Creamos la sharedPreferences en modo privado
SharedPreferences shared =context.getSharedPreferences(fileName, Context.MODE_PRIVATE); 

// Como primer parametro le ponemos el nombre de la variable que pusimos en el putString, como segundo parametro ponemos el valor que queremos que tenga por defecto si no tuviera valor

String nombreUsuari = shared.getString("nombreUsuario", "");  

Con esto termina el primer capítulo de nuestro curso de programación de videojuegos móviles para Android

Como ejemplo de juego en Android os voy a presentar ThePuzz, Podéis ver una captura de pantalla en la foto que ilustra este artículo. Es un juego de puzzles muy original en el que usé muchas de las cosas que hay en este tutorial. En concreto usé las SharedPreferences para guardar la fase en la que el usuario está.

Bonus track para jugar

No puedo irme sin recomendaros un juego gratuito de Android perfecto para los amantes de lo retro, probadlo, de verdad, os encantará: Super Cauldron

Podréis crear niveles personalizados o jugar a los que vienen en el juego. Se agradece que votéis con 5 estrellas si os gusta

Os propongo que probéis un juego que he desarrollado con muchas de las cosas propuestas en estos tutoriales, el juego es el Arkandroid. La foto que ilustra este artículo es una captura del juego. En este juego usé la carga de recursos que hoy he explicado en el tutorial, las fases son números que indican el tipo de ladrillo y el movimiento que tiene si lo tuviera.

También te podría gustar...