Indlela Yokulayisha nokulondoloza idatha yegeyimu ku-Corona SDK

Indlela yokusebenzisa i-SQLite ukugcina idatha yemidlalo nezilungiselelo

Into eyodwa cishe yonke uhlelo lokusebenza kanye nomdlalo kufana naso isidingo sokugcina nokuthola idatha. Ngisho nemidlalo elula kakhulu ingasebenzisa i-SQLite ukulondoloza inombolo yenguqulo yohlelo lokusebenza, engasetshenziselwa ukuqinisekisa ukuhambisana lapho uthuthukiswa, noma izilungiselelo ezilula ezifana nokuvula noma ukuvala umsindo wegeyimu.

Uma ungakaze usebenze okuningi ngezinguquko noma usebenzise izici ze-database ku- Corona SDK , ungakhathazeki. Empeleni inqubo eqondile ngenxa yamandla e-LUA kanye ne-SQLite injini ye-database esebenzisa i-Corona SDK. Lesi sifundo sizohamba ngenqubo yokudala ithebula lezilungiselelo futhi kokubili ukugcina nokuthola ulwazi kulo. Indlela yokuthuthukisa izinhlelo ze-iPad.

Futhi khumbula ukuthi le nqubo ingahamba ngaphezu kokugcina izilungiselelo ezisuselwa kumsebenzisi. Isibonelo, kuthiwani uma unomdlalo ongadlalwa usebenzisa izindlela ezahlukene zemidlalo njengemodi "yezindaba" kanye nemodi ye-arcade. Leli phebula lesisethingi lingasetshenziswa ukugcina imodi yamanje. Noma noma yimuphi omunye uchungechunge ofuna ukuqhubeka uphikelela ngisho noma umsebenzisi ephuma ngaphandle komdlalo futhi abuyele kabusha.

Isinyathelo sokuqala: Ukuqalisa i-database nokudala ithebula lesisetho

Into yokuqala esiyidingayo ukumemezela umtapo we-SQLite futhi utshele uhlelo lokusebenza lethu ukuthi ungathola ifayela le database. Indawo engcono kakhulu yokubeka leli khodi ilungile phezulu kwefayela main.lua kanye nelinye idinga izitatimende. Ifayili yedatha izokwenziwa uma kungatholakali nhlobo, futhi sizoyigcina kwifolda yeDokhumenti ukuze sikwazi ukufunda kuyo bese siyibhalela.

zidinga i- "sqlite3"
idatha yedatha_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (idatha_path);

Phawula indlela ukuguquguquka kwe- "db" akuhambanga khona. Senze lokhu ukuqinisekisa ukuthi singakwazi ukufinyelela ku-database kulo lonke iphrojekthi yethu. Ungaphinda udale ifayela ye-.lua ethize kuyo yonke imisebenzi yedatha bese ugcina imininingwane egciniwe kuleyo fayela.

Okulandelayo, sidinga ukudala ithebula le-database elizogcina izilungiselelo zethu:

i-sql = yendawo: "DALA ITHEBULA Uma kungenjalo izilungiselelo ze-EXISTS (igama, inani);"
db: exec (sql);

Lesi sitatimende sidala ithebula lethu lesisethingi. Kuhle ukuyiqhuba njalo lapho uhlelo lokusebenza luthwala ngoba uma ithebula selivele selikhona, lesi sitatimende ngeke senze noma yini. Ungabeka lesi sitatimende ngqo lapho sitshele khona database noma emsebenzini osetha uhlelo lwakho lokusebenza ukuthi lusebenze. Imfuno eyinhloko (1) ukwenza lezo zitatimende njalo uma uhlelo lokusebenza selungisiwe futhi (2) lwenze ngaphambi kokuthi noma yikuphi izingcingo ukulayisha noma ukulondoloza izilungiselelo.

Isinyathelo Sokubili: Ukugcina izilungiselelo ku-database

umsebenzi wokusetha (igama, inani)
sql = "SUSELA kuzilungiselelo WHERE igama = '" .. igama .. "'";
i-db: i-exec (sql)

sql = "BHEKA izilungiselelo (igama, inani) VALUES ('" ..name .. "'," .. inani ""); ";
i-db: i-exec (sql)
ukuphela

umsebenzi setSettingString (igama, inani)
setSetting (igama, "'" .. inani ... "'");
ukuphela

Umsebenzi wokusetha ususa noma yiziphi izilungiselelo zangaphambilini ezigcinwe etafuleni bese ufaka inani lethu elisha. Izosebenza kokubili izinamba nezintambo, kodwa ukulondoloza ucingo kudinga izingcaphuno ezilodwa ezizungeze inani, ngakho-ke sisebenzise umsebenzi weSettingString ukwenza lo msebenzi owengeziwe kithina.

Isinyathelo sesithathu: Ukulayisha izilungiselelo kusuka ku-database

umsebenzi utholeSetting (igama)

I-sql = yendawo = "Khetha" KUSUSELA izilungiselelo WHERE igama = "" .. igama .. "'";
inani lendawo = -1;

ngomugqa ku-db: ama-nrows (sql) enza
inani = row.value;
ukuphela

inani lokubuyisa;
ukuphela

umsebenzi getSettingString (igama)
I-sql = yendawo = "Khetha" KUSUSELA izilungiselelo WHERE igama = "" .. igama .. "'";
inani lendawo = '';

ngomugqa ku-db: ama-nrows (sql) enza
inani = row.value;
ukuphela

inani lokubuyisa;
ukuphela

Njengenhla, siphulile imisebenzi ibe yizinguqulo ezimbili: eyodwa yezin integers kanye eyodwa yezintambo. Isizathu esiyinhloko esiye senza lokhu ukuze sikwazi ukuziqalisa ngezimiso ezithile uma kungekho ukulungiselelwa okukhona ku-database. Umsebenzi we-getSetting uzobuyela ku- -1, oyositshela ukuthi ukulungiselelwa akulondoloziwe. I-getSettingString izobuyisela ucingo olungenalutho.

Umsebenzi we-getSettingString ukhethe ngokuphelele. Umehluko kuphela phakathi kwawo kanye nokuthola umsebenzi ojwayelekile we-GetSetting yiyona ebuyiswa uma kungatholakali lutho ku-database.

Isinyathelo Sesine: Ukusebenzisa ithebula lesisethingi

Manje njengoba sinomsebenzi onzima, singakwazi ukulayisha kalula futhi silondoloze izilungiselelo kumininingwane yangasese. Isibonelo, singathulisa umsindo ngesitatimende esilandelayo:

setSetting ('umsindo', amanga);

Futhi singasebenzisa ukuhlelwa komsebenzi womhlaba wonke wokudlala imisindo:

umsebenzi wokudlalaSound (soundID)
uma (tholaSetting ('umsindo') ngaleso sikhathi
umsindo.play (soundID)
ukuphela
ukuphela

Ukuze sibuyele emuva umsindo, simane simise ukulungiselelwa komsindo kube yiqiniso:

setSetting ('umsindo', kuyiqiniso);

Ingxenye enhle ngale misebenzi ungagcina izintambo noma integers kuthebula lezilungiselelo bese uzithola kalula. Lokhu kukuvumela ukuba wenze noma yini ngokusindisa igama lomdlali ukuze ulondoloze amaphuzu aphezulu.

I-Corona SDK: Indlela Yokufaka Izithombe Zobuningi, Hambisa Izithombe Zobuciko bese Uletha Izithombe Ngaphambili