Wéi lued a späichere Spilldaten am Corona SDK

Wéi benotzen SQLite fir Spill Data an Settings

Eppes wat nawell all App a Spill besëtzt ass d'Notzung fir Daten ze retten an erauszefannen. Och de einfachste Spill kann SQLite benotzen fir d'App Versioun Nummer ze retten, déi benotzt ka ginn fir Kompatibilitéit ze garantéieren wann Dir Upgrades gemaach oder einfach Einstellungen wéi den Sound vun der Spillplaz op oder aus.

Wann Dir ni vill Aarbecht mat Datenbanken gemaach hutt oder d'Datenbankfunktioun am Corona SDK benotzt gëtt , kéng Suerg. Et ass eigentlech e relativ einfache Prozess duerch d'Muecht vu LUA an d'SQLite-Datenbankmotor déi am Corona SDK benotzt gouf. Dës Tutorial ass duerch den Prozess fir eng Astellungslëscht ze kreéieren an d'Informatioun vun deem ofgeschnidden a retrogradéieren. Wéi kënne iPad Apps entwéckelen.

Denkt och drun, datt dës Technik ka weider benotze kënnen. Zum Beispill, wéi wann Dir e Spill spillt, dee mat verschiddene Spillmodi wéi "Story" -Modus oder "Arcade" -Modus gespuert gëtt. Dës Parametertabelle kann benotzt ginn fir den aktuellen Modus ze speichern. Oder all aner Dossier vun Daten, déi Dir persistent wëllt bleiwen, och wann de Benotzer aus dem Spill quitéiert an op.

Schrëtt 1: D'Initialiséierung vun der Datebank a Schafung vun der Astellungs-Tabelle

Déi éischt Saache musse mer maachen, datt d'SQLite Bibliothek erklärt an eis App soen, wou d'Datebankdatei fonnt gëtt. Déi beschten Plaz fir dëse Code ze setzen ass direkt am Top vun der main.lua-Datei zesummen mat deer aner Aussoen. D'Datebankdatei gëtt erstallt, wann iergendeng fonnt gëtt, a mir wäerte se an den Dokumenter Verankerung speichern, fir datt et aus Liese ka gelies ginn an ze schreiwen.

"sqlite3"
local data_path = system.pathForFile ("data.db", system.documentsDirectory);
db = sqlite3.open (data_path);

Remark: Wéi d'Variant "db" ass net lokaliséiert. Mir hunn dat gemaach fir sécherzestellen, datt mir op eiser Datebank iwwer eise Projete kënnen zougänglech sinn. Dir kënnt och e spezielle .lua-Datei fir all Datebankfunktiounen erstallt an d'Datebank lokaliséieren an déi Datei.

Als nächst wäerte mir d'Datebankstelie erstellen, déi eis Astellungen speichert:

local sql = "CREATE TABELLEN WANN NET AUSSEREN Astellungen (Numm, Wäert);"
db: exec (sql);

Dës Erklärung erlaabt eis Parametertabelle. Et ass okay fir et all Kéier ze lafen wann d'App lues ass, well wann d'Tabellie scho gëtt, dës Erklärung näischt ze maachen. Dir kënnt dës Erklärung direkt ënnert deem wou mir d'Datebank deklaréiert hunn oder an der Funktioun, déi Är App opgefouert gëtt, ze setzen. Den Haaptproblem ass (1) dës Aussoen ze maachen all Kéier wann d'App gestart gouf an (2) et auszerechnen ier e weider Gespréicher ze lueden oder Astellunge spueren.

Zwee Schrëtt: Späicheren zu der Datebank gespäichert

Funktioun setSetting (Numm, Wäert)
SQL = "LËSCHT A FROEN Astellungen WËLLEN NËT = '" .. Numm .. "'";
db: exec (sql)

SQUIP = "INSERT INTO-Astellungen (Numm, Wäertbestand) WUERTEN ('" ..name .. "'," .. value .. ");";
db: exec (sql)
Enn

Funktioun setSettingString (Numm, Wäert)
setSetting (Numm, "'" ..wert .. "'");
Enn

De SetSetting -Funktion lued all Virdeeler déi op der Tabelle gespaichert sinn an fügt eis nei Wert. Et wäert mat zwéin Inhaltsplazen a Zeechen arbeiten, awer datt et e String späichert datt eenzel Zitater ongeféier de Wäert erfuerderlech sinn, fir datt mir d'SetSettingString-Funktion fir dës extra Aarbecht fir eis gemaach hunn.

Schrëtt 3: D'Astellungen vun der Datebank gelueden

function getSetting (Numm)

Lokal Sql = "SÉLECT * VUN ÄREN AUSSEREN WËLLEN Numm =" .. .. Numm .. "" ";
lokalen Wäert = -1;

fir Zeilen an db: nrows (sql) do
value = row.value;
Enn

Remboursement;
Enn

Funktion getSettingString (Numm)
Lokal Sql = "SÉLECT * VUN ÄREN AUSSEREN WËLLEN Numm =" .. .. Numm .. "" ";
lokalen Wäert = '';

fir Zeilen an db: nrows (sql) do
value = row.value;
Enn

Remboursement;
Enn

Wéi virdru gëtt eis d'Funktioun op zwou Versiounen gebrach: eent fir ganz aner a fir eng Saach. Den Haaptgronn, wou mir dat gemaach hunn, ass esou datt mir kënne mat spezifesche Wäerter initialiséieren, wann et keng Astellung gëtt an der Datebank. D'getSetting-Funktion wäert e -1 erofhuelen, wat eis léisst et wëssen datt d'Astellung net gespuert gouf. De GetSettingString hannerlooss eng eidel String.

Déi getSettingString Funktion ass komplett fakultativ. Een eenzegen Ënnerscheed tëscht dem normalen GittSetting-Funktioun ass wat zréckkomm ass wann näischt an der Datebank fonnt gëtt.

Etappe Véier: Benotzt eis Astellungs Dësch

Elo datt mer d'härzeg Aarbecht erliewt hunn, kënne mir d'Astellunge liicht an d'lokaliséierter Datebank leschen. Zum Beispill kënne mir de Klang mat der folgender Ausso weisen:

setSetting ('Toun', falsch);

A mir kënnen d'Fënster an enger globaler Funktioun fir Klang spillen:

Funktioun PlaySound (SoundID)
wann (getSetting ('Sound') dann
audio.play (soundID)
Enn
Enn

Fir den Sound erëm opzemaachen, setze mir einfach d'Klangwieder vum Wierk:

setSetting ('Klang', richteg);

De schéinste Deel iwwer dës Funktiounen ass et fir Stécker oder Ganzziedele fir d'Astellungs-Tabelle ze retten a se liicht z'erreechen. Dëst erlaabt Iech eppes ze maachen fir de Spiller vun engem Spiller ze spueren, fir hir héich Score ze spueren.

Corona SDK: Wéi Layer Grafiken, Beweeg Grafiken a Bring Grafiken op Franséisch