Nola kargatu eta gorde jokoaren datuak Corona SDK-n

Nola erabili SQLite jokoaren datuak eta ezarpenak gordetzeko

Gauza bat ia aplikazio eta joko bakoitza komunean dago datuak gordetzeko eta berreskuratzeko beharra. Nahiz eta joko sinpleenak SQLite erabili, aplikazioaren bertsioaren zenbakia gorde ahal izango da bertsio berritzeko edo konfigurazio sinpleak bateratzeko, bateragarritasuna bermatzeko edo desaktibatzeko.

Inoiz ez baduzu lan egin datu-baseekin edo Corona SDK datu-basearen ezaugarriak erabili, ez kezkatu. Egia da prozesu nahiko erraza dela LUAk eta SQLite datu-basearen motorrak Corona SDK-en erabilita. Tutorial honek ezarpen taulak sortzeko prozesuan zehar ibiliko dira eta informazioa gordetzeko eta berreskuratzeko. Nola garatu iPad apps.

Kontuan izan, gainera, teknika hori erabiltzaileak ezarritako ezarpenak gordetzeko aukera ematen duela. Esate baterako, zer egin behar duzun joko moduak, "istorio" modua eta "arcade" modua erabiliz jolastu ahal izateko. Ezarpen taulak uneko modua gordetzeko erabil daiteke. Edo nahi duzun beste datu-zati bat iraunarazi nahi baduzu, nahiz eta erabiltzaileak jokoan utzi eta berriro abiarazi.

1. urratsa: datu-basea hasi eta ezarpen taulak sortzea

Lehenik eta behin egin behar duguna SQLite liburutegiak deklaratu eta datu-basea aurkitzeko non aurkitu dugun aplikazioa. Kodea jartzeko leku aproposa main.lua fitxategiaren goialdean dago, besteak beste eskatzen diren adierazpenak batera. Datu-basearen fitxategia sortuko da bat ere ez badago aurkitu eta gordeko dugu Dokumentuak karpetan, horregatik irakurri ahal izango dugu eta idatzi.

behar "sqlite3"
tokiko datuak_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (data_path);

Ikus ezazu nola "db" aldagaia ez dago lokalizatuta. Hori egin dugu gure proiektuan zehar datu basean sartzeko. Datu-baseen funtzio guztiek .lua fitxategia ere sor ditzakezu eta fitxategian kokatutako datu basea gorde.

Ondoren, gure ezarpenak gordetzeko taula datu-taula sortu behar dugu:

tokiko sql = "SORTA TABER EZ EGIN ez badituzu ezarpenak (izena, balioa);"
db: exec (sql);

Adierazpen honek gure ezarpen taulak sortzen ditu. Ondo dago exekutatzeko aplikazioa kargatzen den bakoitzean, dagoeneko badagoela, adierazpen hau ez da ezer egingo. Adierazpen hau jarri ahal izango duzu, non datu-basea deklaratu dugu edo exekutatzen duen aplikazioa konfiguratzen duen funtzioaren azpian. Eskaera nagusia (1) aplikazioak martxan jartzen direnean exekutatzea da eta (2) ezarpenak kargatzeko edo gordetzeko deiak egin baino lehen.

Bi urratsa: datu-basearen doikuntzak aurreztea

funtzioaren konfigurazioa (izena, balioa)
sql = "ONDORIOZKO ELEKTRIZEA WHERE izena = '" .. izena ... "'";
db: exec (sql)

sql = "Sartu ezarpenak (izena, balioa) VALUES ('" ..name .. "'," .. value .. ");";
db: exec (sql)
end

funtzio setSettingString (izena, balioa)
setSetting (izena, " '" .. balio .. "'");
end

SetSetting funtzioak mahaian gordetako aurreko ezarpenak ezabatzen ditu eta gure balio berria txertatzen du. Zenbaki osoekin eta kateekin lan egingo du, baina kate bat aurrezten da balioaren inguruko komatxo bakunak eskatzen dituena, beraz, setSettingString funtzioa erabili dugu gure lana pixka bat gehiago egiteko.

Hiru urratsa: datu-basearen ezarpenak kargatzen

funtzio getSetting (izena)

tokiko sql = "SELECT * FROM ezarpenak WHERE izena = '" .. izena .. "'";
tokiko balioa = -1;

db lerroan: nrows (sql) do
balio = row.value;
end

itzultzeko balioa;
end

funtzio getSettingString (izena)
tokiko sql = "SELECT * FROM ezarpenak WHERE izena = '" .. izena .. "'";
tokiko balioa = '';

db lerroan: nrows (sql) do
balio = row.value;
end

itzultzeko balioa;
end

Goian bezala, bi bertsioetan funtzioak hautsi ditugu: bat zenbaki osoetarako eta bestea kateetarako. Hori egin dugun arrazoi nagusiak datu-basean ezarpenik ez badago, balio zehatzekin has ditzakegu. GetSetting funtzioak -1 itzultzen du, eta ezarpena gorde ez dela jakinaraziko digu. GetSettingString kate hutsa itzuliko du.

GetSettingString funtzioa guztiz hautazkoa da. Bere artean eta getSetting normaleko funtzioaren arteko desberdintasun bakarra itzultzen da datu-basean ez bada ezer aurkitu.

Lau urratsa: gure ezarpenen taula erabiliz

Orain egin dugun lana gogorra izan dadin, erraz kargatu eta gorde ezarpenak datu-base lokalizatu batera. Adibidez, soinua mututu egin genezake honako adierazpenarekin:

setSetting ( 'soinu', faltsua);

Eta soinuak erreproduzitzeko funtzio globalaren ezarpena erabili ahal izan genuen:

funtzioak playSound (soundID)
if (getSetting ('soinua')) gero
audio.play (soundID)
end
end

Soinua berriro aktibatzeko, soinuaren ezarpena egiazkoa da:

setSetting ( 'soinu', true);

Funtzio hauei buruzko zati ederra kateak edo osoko zenbakiak ezarpen taulan gorde ditzakezu eta erraz berreskuratu ditzakezu. Honek zerbait egin ahal izango du jokalari baten izena gordetzeko, puntuazio altuena gordetzeko.

Corona SDK: nola geruzatu grafikoak, mugitu grafikoak eta ekartzea grafikoak aurrean