Yksi asia, jolla jokainen sovellus ja peli on yhteistä, on tarve tallentaa ja hakea tietoja. Jopa kaikkein yksinkertaisin peli voi käyttää SQLiteä tallentamaan sovelluksen versionumero, jota voidaan käyttää yhteensopivuuteen päivitysten suorittamisen aikana tai yksinkertaisissa asetuksissa, kuten pelin äänen kytkemisestä päälle tai pois.
Jos et ole koskaan tehnyt paljon työtä tietokantojen kanssa tai käyttänyt Corona SDK: n tietokantaominaisuuksia, älä huoli. Se on todellakin suhteellisen yksinkertainen prosessi, joka on LUA: n ja Coronan SDK: n käyttämän SQLite-tietokantalokin ansiota. Tämä opetusohjelma käy läpi asetustietokannan luomista ja tallentaa ja hakea tietoja siitä.
Muista, että tämä tekniikka voi ylittää käyttäjäperusteisten asetusten tallentamisen. Esimerkiksi, jos sinulla on peli, jota voidaan pelata erilaisilla pelitiloilla, kuten "tarina" -tila ja "arcade" -tila. Tätä asetustaulukkoa voidaan käyttää nykyisen tilan tallentamiseen. Kaikki muut tiedot, jotka haluat pysyä hitaasti, vaikka käyttäjä poistuu pelistä ja käynnistää sen uudelleen.
Tietokannan alustaminen ja asetusten taulukon luominen.
Ensimmäinen asia, mitä meidän on tehtävä, on julistaa SQLite-kirjasto ja kertoa sovellukselle, mistä löytää tietokantatiedosto. Paras paikka tämän koodin asettamiseksi on oikeassa ylälaidassa tärkeimmän .lua-tiedoston ja muiden vaatimusten kanssa. Tietokanta tiedosto luodaan, jos mikään ei löydy, ja tallennamme sen Documents-kansioon, jotta voimme lukea siitä ja kirjoittaa siihen.
vaativat "sqlite3" paikallista data_path = system.pathForFile ("data.db", system.DocumentsDirectory); db = sqlite3.open (data_path);
Huomaa, kuinka "db" -muuttujaa ei ole lokalisoitu. Olemme tehneet tämän varmistaaksemme, että voimme käyttää tietokantaa koko projektimme ajan. Voit myös luoda erityisen .lua-tiedoston kaikille tietokantatoiminnoille ja pitää tietokannan paikallisena kyseiselle tiedostolle.
Seuraavaksi meidän on luotava tietokanta taulukko, joka tallentaa asetukset:
local sql = "LUONTAA TAULUKKO, JOS EI OLE EXISTS asetuksia (nimi, arvo);" db: exec (sql);
Tämä lausuma luo asetukset-taulukon. On hyvä suorittaa se aina, kun sovellus ladataan, koska jos taulukko on jo olemassa, tämä lausunto ei tee mitään. Voit laittaa tämän lausunnon suoraan sen alle, missä olemme ilmoittautuneet tietokannasta tai toiminnossa, joka asettaa sovelluksesi toimimaan. Tärkein vaatimus on (1) suorittaa nämä lausunnot joka kerta kun sovellus käynnistetään ja (2) suorittaa sen ennen puheluja asetusten lataamiseen tai tallentamiseen.
Asetusten tallentaminen tietokantaan.
function setSetting (nimi, arvo) sql = "POISTA asetuksista WHERE name = '" .. name .. "'"; db: exec (sql) sql = "INSERT INTO asetukset (nimi, arvo) ARVOT ('" ..name .. "'," .. arvo .. ");"; db: exec (sql) loppu
funktio setSettingString (nimi, arvo) setSetting (nimi, "'" .. arvo .. "'"), loppu
Asetustoiminto poistaa kaikki pöydälle tallennetut aiemmat asetukset ja lisää uuden arvon. Se toimii sekä kokonaislukujen että merkkijonojen kanssa, mutta merkkijonon tallentaminen edellyttää yksittäisiä lainauksia arvon ympärillä, joten olemme käyttäneet setSettingString-funktiota tehdäksemme sen ylimääräisen työn.
Ladataan asetuksia tietokannasta.
function getSetting (nimi)
paikalliset sql = "VALITSE * FROM asetukset WHERE name = '" .. name .. "'"; paikallinen arvo = -1;
riville db: nrows (sql) do arvo = rivi.arvo; pää
palautusarvo;
function getSettingString (name) local sql = "VALITSE * FROM asetukset WHERE name = '" .. name .. "'"; local value = '';
riville db: nrows (sql) do arvo = rivi.arvo; pää
palautusarvo;
Kuten yllä, olemme rikkoneet toiminnot kahteen versioon: yksi kokonaislukuja ja yksi merkkijonoille. Tärkein syy tähän on, että voimme alustaa ne tietyillä arvoilla, jos tietokannassa ei ole asetuksia. GetSetting-funktio palauttaa -1, joka kertoo meille, että asetusta ei ole tallennettu. GetSettingString palauttaa tyhjä merkkijonon.
GetSettingString-toiminto on täysin valinnainen. Ainoa ero sen ja normaalin getSetting-toiminnon välillä on, mitä palautetaan, jos tietokannasta ei löydy mitään.
Käytämme asetustaulukkoa.
Nyt kun meillä on kovaa työtä, voimme helposti ladata ja tallentaa asetukset paikalliseen tietokantaan. Voimme esimerkiksi mykistää äänen seuraavan lausuman avulla:
setSetting ( 'ääni', false);
Ja voimme käyttää asetusta globaalissa funktiossa äänien soittamiseen:
toiminto playSound (soundID) jos (getSetting ('sound')) ja audio.play (soundID) endend
Jos haluat kytkeä äänen päälle, asetamme äänen asetukseksi true:
setSetting ( 'ääni', true);
Mukava osa näistä toiminnoista on, että voit tallentaa jonoja tai kokonaislukuja asetustaulukkoon ja hakea ne helposti. Näin voit tehdä mitään tallentamasta pelaajan nimeä tallentamaan korkeat pisteet.




