Cómo usar SQLite para almacenar datos y configuraciones del juego

Cómo usar SQLite para almacenar datos y configuraciones del juego

Cómo usar SQLite para almacenar datos y configuraciones del juego

VALORACIÓN DEL ARTÍCULO:
5/5


Una cosa que casi todas las aplicaciones y juegos tienen en común es la necesidad de almacenar y recuperar datos. Incluso el juego más sencillo puede utilizar SQLite para guardar el número de versión de la aplicación, que se puede utilizar para garantizar la compatibilidad al realizar actualizaciones, o configuraciones sencillas como activar o desactivar el sonido del juego.

Si nunca ha trabajado mucho con bases de datos o utilizado las funciones de base de datos en el Corona SDK, no se preocupe. En realidad es un proceso relativamente sencillo gracias a la potencia de LUA y al motor de base de datos SQLite utilizado en el Corona SDK. Este tutorial le guiará en el proceso de crear una tabla de ajustes y de almacenar y recuperar información de la misma.

Tenga en cuenta que esta técnica puede ir más allá del almacenamiento de la configuración basada en el usuario. Por ejemplo, ¿qué pasa si tienes un juego que se puede jugar usando diferentes modos de juego como el modo «historia» y el modo «arcade»? Esta tabla de ajustes se puede utilizar para almacenar el modo actual. Cualquier otro dato que quieras que siga siendo persistente, incluso si el usuario abandona el juego y lo reinicia.

Índice de contenidos

Inicialización de la base de datos y creación de la tabla de parametrizaciones.

Lo primero que tenemos que hacer es declarar la librería SQLite y decirle a nuestra aplicación dónde encontrar el archivo de base de datos. El mejor lugar para poner este código es justo en la parte superior del archivo main.lua junto con los otros requieren declaraciones. El archivo de base de datos se creará si no se encuentra ninguno, y lo almacenaremos en la carpeta Documentos para que podamos leerlo y escribir en él.

requiere «sqlite3» local data_path=system.pathForFile(«data.db»,system.DocumentosDirectory);db=sqlite3.open(data_path);>.

Observe que la variable «db» no está localizada. Hemos hecho esto para asegurarnos de que podemos acceder a la base de datos a lo largo de nuestro proyecto. También puede crear un archivo.lua específico para todas las funciones de la base de datos y mantener la base de datos localizada en ese archivo.

A continuación, necesitamos crear la tabla de base de datos que almacenará nuestras configuraciones:

local sql= «CREATE TABLE IF NOT EXISTS settings (name,value); «db:exec(sql);«.

Esta declaración crea nuestra tabla de ajustes. Está bien ejecutarlo cada vez que se carga la aplicación porque si la tabla ya existe, esta declaración no hará nada. Puedes poner esta declaración debajo de donde hemos declarado la base de datos o en la función que configura tu aplicación para que se ejecute. El requisito principal es (1) ejecutar esas sentencias cada vez que se lanza la aplicación y (2) ejecutarla antes de cualquier llamada para cargar o guardar la configuración.

Guardar los ajustes en la base de datos.

función setSetting(name,value) sql=»DELETE FROM settings WHERE name='»…name…»»»; db:exec( sql) sql=»INSERT INTO settings (name,value) VALUES (‘»..name…»»‘,»»…valor…»);»;»; db:exec( sql) end

function setSettingString(name,value) setSetting(name,"'"...value..."'");end

)

La función de ajuste borra cualquier ajuste anterior guardado en la tabla e inserta nuestro nuevo valor. Funcionará tanto con enteros como con cadenas, pero guardar una cadena requiere comillas simples alrededor del valor, por lo que hemos utilizado la función setSettingString para hacer ese trabajo extra por nosotros.

Cargar la configuración de la base de datos.

función getSetting(name)

 local sql="SELECT * FROM settings WHERE name='"...name..."""; valor local=-1;
 para una fila en db:nrows(sql) do value=row.end 
 
 valor de retorno;end
función getSettingString(name) local sql="SELECT * FROM settings WHERE name='"...name..."'"; valor local=''';
 para una fila en db:nrows(sql) do value=valor de fila; end 
 
 valor de retorno; end

.

Como en el caso anterior, hemos dividido las funciones en dos versiones: una para enteros y otra para cadenas. La razón principal por la que hemos hecho esto es para que podamos inicializarlos con valores específicos si no existe ninguna configuración en la base de datos. La función getSetting devolverá un -1, lo que nos hará saber que el ajuste no se ha guardado. El getSettingString devolverá una cadena en blanco.

La función getSettingString es completamente opcional. La única diferencia entre ella y la función getSetting normal es lo que se devuelve si no se encuentra nada en la base de datos.

Usando nuestra tabla de ajustes.

Ahora que tenemos el trabajo duro hecho, podemos cargar y guardar fácilmente los ajustes en una base de datos localizada. Por ejemplo, podríamos silenciar el sonido con la siguiente sentencia:

setSetting('sonido',false);

>Pre

Y podríamos utilizar la configuración en una función global para reproducir sonidos:

Para volver a activar el sonido, basta con ajustar el ajuste de sonido a verdadero:

setSetting('sound',true);

>Pre

Lo bueno de estas funciones es que puede guardar cadenas o números enteros en la tabla de ajustes y recuperarlos fácilmente. Esto le permite hacer cualquier cosa, desde guardar el nombre de un jugador hasta guardar su puntuación más alta.

TAMBIÉN TE INTERESA

etiquetado energético en smartphones

Esto es lo que nos encontraremos en el nuevo etiquetado energético en smartphones

A partir del próximo 20 de junio, tendremos novedades como consumidores de tecnología. La Unión Europea ha decidido incorporar un nuevo etiquetado energético en smartphones y tablets. Todos estos dispositivos que se comercialicen en el viejo continente deberán llevar  una nueva etiqueta energética obligatoria, tal como establece el Reglamento 2023/1669. Esta medida no solo busca

Internet con IA

Internet con IA: todo lo que cambia (y está por cambiar) en la Red de Redes

Tal y como lo hemos conocido durante tres décadas, internet ha funcionado como una plaza pública (virtual) sin límites: un espacio de comunicación, información y oportunidad en el que todos podíamos participar. Pero esa plaza está cambiando porque Internet con IA nos va a cambiar el paso a todos. Como está sucediendo con prácticamente todo

nuevo mac studio

El nuevo Mac Studio es inalcanzable para cualquier PC de escritorio

Apple ha presentado su equipo de sobremesa más potente hasta la fecha: el nuevo Mac Studio, impulsado por los chips M4 Max y el nuevo M3 Ultra, una auténtica bestia orientada a profesionales de la inteligencia artificial, el diseño, la ingeniería o el desarrollo de software que buscan rendimiento extremo en un formato compacto. Vale,

camara seguridad doble lente de Beans View

Beans View tiene una cámara de seguridad de doble lente a un precio imbatible en Amazon

La seguridad inteligente del hogar da un nuevo paso con la Beans View 220 Dual 3K, la última incorporación al catálogo de la marca especializada en cámaras Wi-Fi. Este nuevo modelo, diseñado para ofrecer una vigilancia integral y precisa en espacios interiores, combina tecnología de doble lente, inteligencia artificial, visión nocturna a color y seguimiento

industria del videojuego

La industria del videojuego ya se mueve por un público muy distinto al de hace años

Durante años, el imaginario colectivo ha situado al jugador de videojuegos en el rincón oscuro de una habitación, joven, solitario, inmóvil frente a una pantalla. Esa imagen está cada vez más lejos de la realidad para la industria del videojuego. La V Radiografía del Gaming en España, elaborada por el ecommerce tecnológico PcComponentes, desmonta con