Tutorial videojuegos: Variables de juego persistentes (SharedPreferences)

captura de pantalla de videojuego android de nuestro tutorial

Capítulo 1 del curso de programación de 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á.

Votos totales: 52