Kif Tagħbija u Ħlief tad-Data tal-Logħob fil-SDK ta 'Corona

Kif għandek tuża SQLite biex Tiftakar Game Data u Settings

Ħaġa waħda kważi kull app u logħba għandha komuni hija l-ħtieġa li tinħażen u tinġabar data. Anke l-aktar logħba sempliċi tista 'tutilizza SQLite biex issalva n-numru tal-verżjoni tal-app, li tista' tintuża biex tkun żgurata l-kompatibilità meta jsiru aġġornamenti, jew settings sempliċi bħat-tidwir tal-ħoss tal-logħba fuq jew barra.

Jekk qatt ma għamilt ħafna xogħol mad-databases jew użajt il-karatteristiċi tad-database fl- SDK ta 'Corona , tinkwetax. Huwa fil-fatt proċess relattivament sempliċi grazzi għall-qawwa ta 'LUA u l-magna tad-database SQLite utilizzata fil-SDK ta' Corona. Dan tutorja ser jimxi permezz tal-proċess tal-ħolqien ta 'tabella settings u kemm ħażna u l-irkupru ta' informazzjoni minnha. Kif tiżviluppa apps iPad.

Wkoll iżomm f'moħħu li din it-teknika tista 'tmur lil hinn mill-ħażna ta' settings bbażati fuq l-utent. Per eżempju, x'jiġri jekk ikollok xi logħba li tista 'tintlagħab permezz ta' modi ta 'kaċċa differenti bħal modalità "storja" u modalità "arcade". Din it-tabella settings tista 'tintuża biex taħżen il-modalità kurrenti. Jew kwalunkwe biċċa oħra ta 'dejta li tixtieq tibqa' persistenti anki jekk l-utent jitlaq mill-logħba u jerġa 'jibdaha.

L-ewwel pass: L-inizjazzjoni tad-database u l-ħolqien tat-tabella tas-settings

L-ewwel ħaġa li rridu nagħmlu hija li tiddikjara l-librerija SQLite u għid lit-app tagħna fejn issib il-fajl tad-database. L-aħjar post biex dan il-kodiċi huwa dritt fil-quċċata tal-fajl main.lua flimkien ma 'l-ieħor jeħtieġu dikjarazzjonijiet. Il-fajl tad-database jinħoloq jekk ma jinstab xejn, u aħna nħażnu fil-folder tad-Dokumenti sabiex inkunu nistgħu nidħlu minnha u tiktebha.

jeħtieġu "sqlite3"
data_path lokali = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (data_path);

Avviż kif il-varjabbli "db" mhix lokalizzata. Aħna għamilna dan biex nassiguraw li nistgħu naċċessaw id-database matul il-proġett tagħna. Tista 'wkoll toħloq fajl speċifiku .lua għall-funzjonijiet kollha tad-database u żżomm id-database lokalizzata għal dak il-fajl.

Imbagħad, neħtieġu li tinħoloq il-mejda tad-database li se taħżen is-settings tagħna:

sql lokali = "CREATE TABLE JEKK IKUN MHUX EŻISTENTI settings (isem, valur);"
db: exec (sql);

Din id-dikjarazzjoni toħloq it-tabella tas-settings tagħna. Huwa tajjeb li tmexxih kull darba li t-tagħbijiet ta 'l-applows għaliex jekk it-tabella diġà teżisti, din id-dikjarazzjoni ma tagħmilx xi ħaġa. Tista 'tpoġġi din id-dikjarazzjoni dritt taħt fejn iddikjarajt id-database jew fil-funzjoni li tistabbilixxi l-applikazzjoni tiegħek biex taħdem. Ir-rekwiżit ewlieni huwa (1) li tesegwixxi dawk id-dikjarazzjonijiet kull darba li tniedi l-app u (2) tesegwixxiha qabel kwalunkwe sejħa biex tagħbija jew issalva settings.

It-Tieni Stadju: Iffrankar tas-settings għad-database

Funzjoni Issettjar (isem, valur)
sql = "DELETE FROM settings DWAR isem = '" .. isem .. "'";
db: exec (sql)

sql = "INSERT FI settings (isem, valur) VALURI ('" .. isem .. "", ".. valur .."); ";
db: exec (sql)
tmiem

Funzjoni SetSettingString (isem, valur)
setSetting (isem, "" ".. valur .." '");
tmiem

Il-funzjoni set Set setting tħassar kwalunkwe settings preċedenti salvati fit-tabella u ddaħħal il-valur il-ġdid tagħna. Se taħdem kemm ma 'numri interi kif ukoll b'kordi, iżda l-iffrankar ta' sekwenza teħtieġ kwotazzjonijiet singoli madwar il-valur, għalhekk użajna l-funzjoni setSettingString biex nagħmlu dak ix-xogħol żejjed għalina.

It-Tielet Pass: issettjar tat-tagħbija mid-database

funzjoni GetSetting (isem)

lokali sql = "SELECT * FROM settings Fejn isem = '" ... isem .. "'";
valur lokali = -1;

għal ringiela f'db: nrows (sql) do
valur = valur tar-ro;
tmiem

valur tar-ritorn;
tmiem

funzjoni getSettingString (isem)
lokali sql = "SELECT * FROM settings Fejn isem = '" ... isem .. "'";
valur lokali = '';

għal ringiela f'db: nrows (sql) do
valur = valur tar-ro;
tmiem

valur tar-ritorn;
tmiem

Bħal hawn fuq, aħna ħassejna l-funzjonijiet f'żewġ verżjonijiet: waħda għan-numri interi u waħda għall-kordi. Ir-raġuni ewlenija li għamilna hija li nistgħu niżvelawhom b'valuri speċifiċi jekk ma teżisti l-ebda setting fid-database. Il-funzjoni getSetting ser terġa 'lura -1, li tgħarrafna li l-issettjar ma ġiex salvat. L-getSettingString se jġib lura sekwenza vojta.

Il-funzjoni getSettingString hija kompletament fakultattiva. L-unika differenza bejnha u l-funzjoni normali ta 'tniżżil hija dik li tingħata lura jekk ma tinstab xejn fid-database.

Pass Erba: Juża t-tabella tas-settings tagħna

Issa li rridu nagħmlu x-xogħol iebes, nistgħu faċilment intaffu u niffrankaw settings għal database lokalizzata. Pereżempju, nistgħu nissorbu l-ħoss bid-dikjarazzjoni li ġejja:

setSetting ("ħoss", falz);

U nistgħu nużaw l-issettjar f'funzjoni globali għall-ħsejjes:

funzjoni playSound (soundID)
jekk (tinkiseb ("ħoss")) imbagħad
audio.play (soundID)
tmiem
tmiem

Biex iddawwar il-ħoss lura, aħna sempliċement issettja l-issettjar tal-ħoss għal veru:

setSetting ("ħoss", veru);

Il-parti sabiħa dwar dawn il-funzjonijiet hija tista 'ssalva l-kordi jew l-interi fit-tabella tas-settings u ġġibuhom faċilment. Dan jippermettilek li tagħmel xi ħaġa mill-iffrankar ta 'isem ta' plejer biex tfaddal il-punteġġ għoli tagħhom.

Corona SDK: Kif Layer Graphics, Nimxu Grafika u Ġib il-Grafika Quddiem