Cumu Carbu è Salvà Data di ghjocu in u SDK di a Corona

Cumu utilizà SQLite à i dispunellati di ghjucadore è i paràmetri

Una cosa chì quasi tutti l'applii è u ghjocu hà in usu cumuni hè a nicissità d'accuncià è di ricuperazione di dati. Ancu u ghjocu più simplice pò utili SQLite per salverà u numicu di versione applicazione, chì pò esse adupratu per assicurà a cumpatibilità à esse realizà l'aghjurnamenti, o paràmetuli senzetti cum'è tornendu u so sonu di u ghjocu.

Se ùn hà mai fattu u travagliu cù basi di dati o utilizate a basa di basa di funziunalità in u SDK di a Corona , ùn anu micca peghju. Hè un veramente un prucessu simplice, grazia à u putere di LUA è u mutore SQLite di dati utilizatu in u Corona SDK. Stu tutorialu passà per u prucessu di creà una tavulinu di scrittura è sia di sappenu l'infurmazioni da quì. Cumu sviluppà appoppizi iPad.

Ancu ancu in mente chì sta tècnica puderia più allende l'arregistramentu di l'utilizatori. Per esempiu, chì si avete un ghjocu chì pò esse ghjucatu cù mudelli di ghjocu, cumu u modu di "storia" è "arcade". Questa mesa di paràmetra pò esse usata per salverà u modu prisenti. Ogni qualsìasi pezzu di dati chì vulete stà persistente ancu s'ellu u cliente quita di u ghjocu è rilanniu.

U primu paese: Initializà a basa di dati è crea a tabella di cunfigurazione

U primu chì hà bisognu à fà esse dichjarà a biblioteca SQLite è dite à a nostra app nantu à truvà u file di basa di basa. U megliu postu per fà stu còdice hè ghjustu à u cima di u cartulare main.lua cù l'altru dumandà esse tistimonii. U schedariu di basa di dati serà creatu si nisunu ùn si trova, è ci guardemu in a carta di documenti per chì pudemu leghere è dite à scrive.

dumandà "sqlite3"
data_path local = system.pathForFile ("data.db", sistema.DocumentsDirectory);
db = sqlite3.open (data_path);

Avete chì a "db" variable ùn hè micca lucalizata. Avemu fattu questu per verificà chì pudemu accede à a basa di dati in u nostru prugettu. Pudete ancu creà un schedariu specificu .lua per tutte e funzioni di a basa di dati è mantene a basa di dati versi à quellu file.

In seguitu, avemu bisognu di creà a tabella di basa di dati chì guardarà a nostra scena:

sql local = "CREATE TABLE SI SIN EXISTS settings (nome, valur);"
db: exec (sql);

Questa stituzzioni crea a nostra mesa di paràmetra. Hè vultatu à curreva ogni volta l'app carichi perchè se a tavola esiste digià, sta frasa ùn falla micca nunda. Pudete mette in questa rettrazione sensu di quale avemu dichjaratu a basa di dati o in a funzione chì apre u vostru app per esecutà. U cumpurtamentu principali hè (1) per eseguite esse dichjarazioni ogni volta chì l'app è chjamata è (2) eseguite cumu qualsiasi chjamà per carica o di salvà paràmetra.

A Passu Sette: Saving settings à a basa di dati

funzione setSetting (nomu, valore)
sql = "SZUGLI FROM l'enzione ONÈRI name = '" .. nome .. "'";
db: exec (sql)

sql = "INSERT INTO CONFIGURATION (nome, valur) VALUES ('" ..name .. "'," .. valor ... ");";
db: exec (sql)
fini

funzione setSettingString (nomu, valore)
setSetting (nome, "'" .. valor ... "'");
fini

A funzione setSetting funti qualchì paràzione pretene salvate à a tavula è inserisci u nostru novu valuru. Hè travagliatu cù i fille è stringe, ma salvà una corda precisa un quota unificata in u valore, cusì avemu usatu a funzione setSettingString per fà stu pocu extra di travagliu per noi.

Tratu tres: Scaricamentu di trasportu da a basa di dati

function getSetting (name)

locale sql = "SELECT * FROM appenzioni WHERE nome = '" .. nome .. "";
valore lucale = -1;

per row in db: nrows (sql) fà
value = row.value;
fini

valurizà;
fini

function getSettingString (name)
locale sql = "SELECT * FROM appenzioni WHERE nome = '" .. nome .. "";
valore lucale = '';

per row in db: nrows (sql) fà
value = row.value;
fini

valurizà;
fini

Cum'è quì sopra, avemu rotulatu e funzioni in dui versione: unu per enterochi è una per di strings. A ragiunata principale chì avemu fattu questu hè cusì ch'elli ponu esse initializà cù valori specifichi in casu ùn esiste micca esistenti in a basa di dati. A funzione getSetting torna un -1, chì hà permessu di sapè chì u paràmetru ùn hè micca salvatu. U getSettingString torna una stringa in lega.

A funzione getSettingString hè tutali opcional. A sola diferenza tra ella è a funziona nurmale ordinali hè quellu chì hè tornatu s'ellu ùn hè truvatu nunda in a basa di dati.

U Passu Quattru: Usendu a nostra mesa di paràmetra

Avà chì avemu u travagliu fortu travagliu, pudemu facilmente cullà è sguate settings à una basa di dati. Per esempiu, pudemu sutinu u sonu cù a strada:

setSetting ("sonu", falu);

È pudemu usà l'implementazione in una funzione globale per ghjucà i so sona:

funzione playsSound (soundID)
se (getSetting ('sound')) in seguitu
audio.play (soundID)
fini
fini

Per fà rinvià u sonu, simu simplificatu l'ambienti di sonu à veru:

setSetting ("sonu", veru);

A parte bona di queste funzioni hè stallate salvà chorde o entenze di a tavulinu di i paràmetri è ricuperate facilmente. Questu permette di fà nunda da salvà u nome di u jocu per salvà a so puntuazione alta.

Corona SDK: Quandu a Stallà Gràfica, Move Graphics è Bring Graphics à Front