Jinsi ya kubeba na kuokoa data ya data katika SDK ya Corona

Jinsi ya kutumia SQLite Kuhifadhi Data na Mipangilio ya Mchezo

Jambo moja karibu kila programu na mchezo unaofanana ni haja ya kuhifadhi na kurejesha data. Hata mchezo rahisi zaidi unaweza kutumia SQLite ili kuokoa namba ya toleo la programu, ambayo inaweza kutumika kuhakikisha utangamano wakati wa upgrades, au mipangilio rahisi kama vile kugeuka au kuzima sauti ya mchezo.

Ikiwa haujawahi kufanya kazi nyingi na databases au kutumia vitu vya database katika SDK ya Corona , usijali. Kwa kweli ni mchakato wa moja kwa moja wa shukrani kwa nguvu za LUA na injini ya database ya SQLite iliyotumiwa katika SDK ya Corona. Mafunzo haya yatatembea kupitia mchakato wa kuunda meza ya mipangilio na kuhifadhi wote na kupata habari kutoka kwao. Jinsi ya kuendeleza programu za iPad.

Pia kukumbuka kwamba mbinu hii inaweza kwenda zaidi ya kuhifadhi mipangilio ya mtumiaji. Kwa mfano, fanya kama una mchezo ambao unaweza kuchezwa kwa kutumia njia tofauti za mchezo kama vile "hadithi" mode na "arcade" mode. Jedwali hili la mipangilio inaweza kutumika kutunza hali ya sasa. Au kipande chochote cha data unayotaka kubaki kuendelea hata kama mtumiaji anaondoka nje ya mchezo na kuifungua tena.

Hatua ya Kwanza: Kuanzisha database na kuunda meza ya mipangilio

Jambo la kwanza tunalohitaji kufanya ni kutangaza maktaba ya SQLite na kuwaambia programu yetu wapi kupata faili ya database. Mahali bora ya kuweka msimbo huu ni sahihi juu ya faili kuu.lua pamoja na maelezo mengine yanahitajika. Faili ya database itaundwa ikiwa hakuna yeyote hupatikana, na tutaifunga kwenye folda ya Nyaraka ili tuweze kusoma na kuiandikia.

inahitaji "sqlite3"
data_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (data_path);

Angalia jinsi mabadiliko ya "db" hayapatikani. Tumefanya hili ili kuhakikisha tunaweza kufikia database katika mradi wetu. Unaweza pia kuunda faili ya .lua maalum kwa kazi zote za database na kuweka database iliyowekwa kwenye faili hiyo.

Kisha, tunahitaji kuunda meza ya duka ambayo itahifadhi mipangilio yetu:

mitaa sql = "Unda TABLE IF NOT settings EXISTS (jina, thamani);"
db: exec (sql);

Taarifa hii inajenga meza yetu ya mipangilio. Ni sawa kuitumia kila wakati programu inapobeba kwa sababu kama meza tayari iko, tamko hili halitafanya chochote. Unaweza kuweka taarifa hii haki chini ya ambapo tumetangaza database au katika kazi inayoweka programu yako kuendesha. Mahitaji makuu ni (1) kutekeleza kauli hizo kila wakati programu inapozinduliwa na (2) itaifanya kabla ya simu yoyote kupakia au kuhifadhi mipangilio.

Hatua ya Pili: Kuhifadhi mipangilio kwenye orodha

kazi kuwekaSetting (jina, thamani)
sql = "Ondoa kutoka kwa mipangilio NINI jina =" "jina .." '";
db: exec (sql)

sql = "INSERT INTO mipangilio (jina, thamani) VALUES ('" ..name .. "', .. .. thamani .."); ";
db: exec (sql)
mwisho

kazi kuwekaSettingString (jina, thamani)
kuwekaSetting (jina, "'" .. thamani .. "'");
mwisho

Kazi ya Kuweka inafuta mipangilio yoyote ya awali iliyohifadhiwa kwenye meza na inatia thamani yetu mpya. Itafanya kazi na integers zote mbili na masharti, lakini kuokoa kamba inahitaji quotes moja karibu na thamani, kwa hivyo tumekuwa tumia kazi ya SetSettingString kufanya kazi hiyo ya ziada kwa ajili yetu.

Hatua ya Tatu: Kupakia mipangilio kutoka kwa databana

kazi kupataSetting (jina)

mitaa sql = "SELECT * FROM mazingira ambayo jina = =" jina .. "'";
thamani ya ndani = -1;

kwa mstari katika db: nrows (sql) kufanya
thamani = row.value;
mwisho

thamani ya kurudi;
mwisho

kazi kupataSettingString (jina)
mitaa sql = "SELECT * FROM mazingira ambayo jina = =" jina .. "'";
thamani ya ndani = '';

kwa mstari katika db: nrows (sql) kufanya
thamani = row.value;
mwisho

thamani ya kurudi;
mwisho

Kama hapo juu, tumevunja kazi katika matoleo mawili: moja kwa integers na moja kwa masharti. Sababu kuu tumeifanya hii ni ili tuweze kuanzisha yao kwa maadili maalum ikiwa hakuna mipangilio iliyopo kwenye databana. Kazi ya kupataSetting itarejea -1, ambayo itatutambulisha kuwa mipangilio haijahifadhiwa. GetSettingString itarudi kamba tupu.

Kazi ya kupataSettingString ni hiari kabisa. Tofauti pekee kati yake na kazi ya kawaida ya kupataSetting ni nini kinarudi ikiwa hakuna kitu kinachopatikana kwenye databana.

Hatua ya Nne: Kutumia meza yetu ya mipangilio

Sasa kwa kuwa tuna kazi ngumu, tunaweza kupakia kwa urahisi na kuokoa mipangilio kwenye databuni iliyopangwa. Kwa mfano, tunaweza kuzungumza sauti na kauli ifuatayo:

kuwekaSetting ('sound', uongo);

Na tunaweza kutumia mazingira katika kazi ya kimataifa kwa kucheza sauti:

kazi ya kuchezaSauti (soundID)
ikiwa (kupataSetting ('sauti') kisha
audio.play (sautiID)
mwisho
mwisho

Ili kurejea sauti, tunaweka tu mazingira ya sauti ya kweli:

kuwekaSetting ('sauti', kweli);

Sehemu nzuri kuhusu kazi hizi unaweza kuokoa safu au integers kwenye meza ya mipangilio na kuzipata kwa urahisi. Hii inaruhusu kufanya kitu chochote kuokoa jina la mchezaji ili kuokoa alama zao za juu.

SDK ya Corona: Jinsi ya Kuweka Graphics, Kuhamisha Graphics na Kuleta Graphics kwa Front