Az egyik dolog, hogy szinte minden alkalmazásnak és játéknak közös az adat tárolása és visszakeresése. Még a legegyszerűbb játék is használhatja az SQLite-t, hogy mentse az alkalmazás verziószámát, amely a kompatibilitás biztosítása a frissítések végrehajtásakor, vagy olyan egyszerű beállítások, mint a játék hangjának be- és kikapcsolása.
Ha még soha nem sok munkát végzett az adatbázisokkal, vagy nem használta a Corona SDK adatbázis szolgáltatásait, ne aggódjon. Ez valójában egy viszonylag egyszerű eljárás az LUA és a Corona SDK által használt SQLite adatbázis-motornak köszönhetően. Ez a bemutató a beállítási tábla létrehozásának folyamatát és az adatok tárolását és lekérését végzi.
Ne feledje, hogy ez a technika meghaladhatja a felhasználói alapú beállítások tárolását. Például, ha van olyan játék, amely különböző játékmódokkal játszható le, például a "történet" és az "arcade" üzemmódban. Ez a beállítási táblázat használható az aktuális üzemmód tárolására. Minden olyan adat, amelyet meg akarsz maradni, még akkor is, ha a felhasználó kilép a játékból és újraindítja.
Az adatbázis inicializálása és a beállítási táblázat létrehozása.
Az első dolog, amit meg kell tennünk, hogy kijelentjük az SQLite könyvtárat, és mondjuk meg az alkalmazást, hogy hol találja meg az adatbázis fájlt. A legjobb hely erre a kódra a fő.lua fájl tetején van, a másik pedig nyilatkozatokat igényel. Az adatbázisfájl akkor jön létre, ha senki nem található, és tároljuk a Dokumentumok mappában, így olvashatunk róla és írhatunk hozzá.
"sqlite3" local adat_path = system.pathForFile ("data.db", system.DocumentsDirectory); db = sqlite3.open (adat_út);
Figyeljük meg, hogy a "db" változó nincs lokalizálva. Ezt azért tettük meg, hogy megbizonyosodjunk arról, hogy az egész projektünkhöz hozzáférhetünk az adatbázisban. Létrehozhat egy speciális .lua fájlt az összes adatbázis-függvényhez, és megtarthatja az adott fájllal lokalizált adatbázist.
Ezután létre kell hoznunk az adatbázis táblát, amely tárolja a beállításainkat:
local sql = "CREATE TABLE IF NEM EXISTS beállítások (név, érték);" db: exec (sql);
Ez az utasítás létrehozza a beállítási táblázatot. Minden alkalommal, amikor az alkalmazás betöltődik, rendben van, mert ha a táblázat már létezik, ez a nyilatkozat nem fog semmit tenni. Ezt a kijelentést közvetlenül elhelyezheti az adatbázis alatt, vagy az alkalmazást futtató függvényében. A fő követelmény (1), hogy végrehajtsa ezeket a kijelentéseket minden alkalommal, amikor az alkalmazást elindítja, és (2) végrehajtja, mielőtt bármilyen hívás betölteni vagy menteni beállításokat.
A beállítások mentése az adatbázisba.
function setSetting (név, érték) sql = "TÖRLÉS a beállításokból WHERE name = '" .. name .. "'"; db: exec (sql) sql = "INSERT INTO beállítások (név, érték) VALUES ('' .. name .. ''," .. value .. ");"; db: exec (sql) end
function setSettingString (név, érték) setSetting (név, "" "érték .." '");
A beállítási funkció törli az asztalra mentett korábbi beállításokat, és beilleszti új értékünket. Ez együtt fog működni mind az egész számokkal, mind a karakterláncokkal, de a karaktersorozatot meg kell menteni az érték körül, ezért a setSettingString függvényt alkalmaztuk.
Beállítások betöltése az adatbázisból.
function getSetting (név)
helyi sql = "SELECT * FROM beállítások WHERE name = '" .. name .. "'"; helyi érték = -1;
sorban db: nrows (sql) do érték = sor.érték; vég
visszatérési érték;
function getSettingString (név) local sql = "SELECT * FROM beállítások WHERE name = '" .. name .. "'"; helyi érték = '';
sorban db: nrows (sql) do érték = sor.érték; vég
visszatérési érték;
Mint fentebb elmondtuk, a funkciókat két verzióra bontottuk: egyet az egész számokra és az egyiket a karakterláncokra. A legfontosabb ok, hogy ezt elvégeztük, hogy egyedi értékekkel tudjuk inicializálni őket, ha nincs beállítás az adatbázisban. A getSetting funkció visszaad egy -1 értéket, amely közli velünk, hogy a beállítás nem lett mentve. A getSettingString visszaad egy üres karakterláncot.
A getSettingString funkció teljesen opcionális. Az egyetlen különbség a rendszer és a normál getSetting funkció között az az, amit visszakapunk, ha semmi sem található az adatbázisban.
A beállítások táblázata.
Most, hogy kemény munkánk van, egyszerűen betölthetjük és elmenthetjük a beállításokat egy helyi adatbázisba. Például elnémíthatja a hangot a következő kijelentéssel:
setSetting (a 'hang', false);
És a globális funkciót a hangok lejátszására használhatjuk:
function playSound (soundID) ha (getSetting ('hang')), majd audio.play (soundID) endend
A hang visszaállításához egyszerűen állítsuk be a hang beállítást igaznak:
setSetting (a 'hang', true);
Ezeknek a funkcióknak a szép része az, hogy mentse a karakterláncokat vagy egész számokat a beállítások táblájához, és egyszerűen visszakeresheti azokat. Ez lehetővé teszi, hogy bármit megmentsünk a játékos nevének megőrzésével a magas pontszám megtakarításához.