Corona SDK кандай жүк жана Save Оюн маалыматтар менен

Оюн Data жана параметрлерди сактоо үчүн SQLite кантип колдонсо болот?

Бир нерсе дээрлик ар бир колдонмо жана оюн орток элек сактоо жана маалыматтарды алуу үчүн зарыл болуп саналат. Атүгүл жөнөкөй оюн нуска, же болбосо мындай заттарды оюндун үнүн же өчүрүлсө, жөнөкөй эле орнотууларды аткарууда шайкеш келишин камсыз кылуу үчүн колдонулушу мүмкүн колдонмо версия номерин, куткаруу үчүн SQLite тарта алат.

Сиз маалымат базалары менен көп иш кылганын же маалыматтар базасын өзгөчөлүктөрүн пайдалануу эч качан болсо Corona SDK , тынчсызданбагыла. Бул, чынында, Коля күчү салыштырмалуу жөнөкөй жараян урматында жана Corona SDK колдонулушу SQLite базасы кыймылдаткычы болот. Бул окуу куралы бир орнотуулар үстөл жана сактоону түзүү жана аны маалымат алуу жараянына менен өтүшөт. Галактика колдонмолорду кантип иштеп чыгуу керек.

Ошондой эле, бул ыкма колдонуучу негизделген орнотууларды сактоо ары барып, эстен чыгарбоо. Мисалы, сиз, мисалы, "Тарых" режиминде жана "аркада" режиминде болуп, ар түрдүү оюн ыкмаларын колдонуу менен ойной алат оюн бар болсо. Бул орнотуулар стол азыркы режимди сактоо үчүн колдонсо болот. Же болбосо маалыматтар башка бир бөлүгү да болсо, туруктуу болууну каалайбыз, оюндан чыгып кетип, аны relaunches.

Step One: базасын баштоо жана орнотуулары үстөлдү түзүү

Биз эмне кылышыбыз керек биринчи кезекте SQLite китепкана жарыялоого жана кайда базасы баар таап алуу үчүн колдонмону айтып турат. Бул кодду үчүн мыкты жер башка отчетту талап менен бирге main.lua делосуна үстүндөгү туура. берилиштер базасына билэ эч ким болсо түзүлөт, биз анын өзүнөн окуп алабыз документтер папкасына, ошондуктан аны сактап, ага жаза аласыз.

"Sqlite3" талап кылат
жергиликтүү data_path = system.pathForFile ( "data.db", system.DocumentsDirectory);
DB = sqlite3.open (data_path);

"DB" өзгөрүлмө жергиликтүү эмес, карап көрөлү. Биз долбоор боюнча маалымат базасын Ийгиликтерге жетүү үчүн бул багытта ишти баштадык. Ошондой эле бардык базасы милдеттерди белгилүү бир .lua билэни түзүү жана делосуна жергиликтүү базасын сактай алабыз.

Андан кийин биз параметрлерди сактоо, маалыматтар базасы жадыбалын түзүү керек:

жергиликтүү SQL = "ЭГЕР МАЗМУНУ жараткан эмес БАР орнотууларды (аты-жөнү, наркын);"
DB: Шмидт (SQL);

Бул билдирүү биздин орнотуулары үстөл жаратат. Ал ар дайым колдонмо жүктер анткени чуркап жакшы дасторконунан мурунтан эле бар болсо, бул билдирүү эч нерсе кыла албай калат. Туура, биз базасы деп кайсы жерге же иштетүү үчүн сиздин колдонмону орнотот кызматына бул билдирүү бере алат. негизги талап (1) Бул айтылгандардын ар дайым колдонмо ишке жана (2) жүк же орнотууларды сактап калуу үчүн ар кандай чалуулар алдында аны ишке ашырыш үчүн эмес.

Экинчи кадам: базасына орнотууларды сакталууда

милдети setSetting (аты-жөнү, нарк)
SQL = "Жөндөөлөрдөн КАЙДА аты = DELETE" ".. ат .." "";
DB: Шмидт (SQL)

SQL = "Жарчысы орнотуулар (аты-жөнү, нарк) БААЛУУЛУКТАРДЫН (" ..name .. "," .. Наркы .. ");";
DB: Шмидт (SQL)
Бир мезгилдин акырына карата

милдети setSettingString (аты-жөнү, нарк)
setSetting (аты-жөнү, "" ".. Наркы ..", "");
Бир мезгилдин акырына карата

setSetting милдети столдун сакталды мурдагы орнотууларды тазалап жок кылат жана жаңы наркын киргизет. Ал аркылуу туюнтулуп, ал эми саптар менен иш алып барат, ал эми сап үнөмдөө наркы айланасында Жалгыз тырмакчаны талап кылат, ошондуктан, биз үчүн ал ишти кошумча аз кылууга setSettingString милдетин колдонгон.

Баскыч: базасында жүктөлүүдө

милдети getSetting (аты-жөнү)

жергиликтүү SQL = "SELECT * ЧЕЙИН орнотуулар аты =" ".. аты .." "";
жергиликтүү балл = -1;

DB менен катар үчүн: nrows (SQL) эмне
Наркы = row.value;
Бир мезгилдин акырына карата

наркын кайтарып берет;
Бир мезгилдин акырына карата

милдети getSettingString (аты-жөнү)
жергиликтүү SQL = "SELECT * ЧЕЙИН орнотуулар аты =" ".. аты .." "";
жергиликтүү балл = '';

DB менен катар үчүн: nrows (SQL) эмне
Наркы = row.value;
Бир мезгилдин акырына карата

наркын кайтарып берет;
Бир мезгилдин акырына карата

Жогоруда да айтылгандай, биз милдеттерди эки нускада бузду: бүтүн бири, ал эми саптар үчүн бири. Биз бул багытта ишти баштадык негизги себеби эч кандай жөндөө базасы бар болсо, биз белгилүү бир баалуулуктар менен иштетүү мүмкүн деп айтууга болот. getSetting милдети бизге жөндөөсү сакталган жок экенин билип турган -1, кайтып келет. getSettingString бош жип менен кайтып келет.

getSettingString милдети толугу менен ыктыярдуу болуп саналат. аны менен кадимкидей getSetting милдетин гана айырмасы нерсе базасында табылган болсо, кайтып жатат.

Step Төрт: Биздин орнотуулары үстөл колдонуу

Эми биз кыйын иш кылган, биз тез жүктөлгөн жана жергиликтүү базасына орнотууларды сактоого болот. Мисалы, төмөнкү сөздөр менен киргиле мүмкүн:

setSetting ( "үн", жалган);

Биз үндөрдү ойноо боюнча дүйнөлүк иш-жөндөө пайдаланууга мүмкүн:

милдети playSound (soundID)
эгер (getSetting ( "үн")) анан
audio.play (soundID)
Бир мезгилдин акырына карата
Бир мезгилдин акырына карата

кайра үнүн күйгүзүү үчүн, биз жөн гана чыныгы жөндөө үн белгиленген:

setSetting ( "үн", чыныгы);

Бул иш тууралуу жакшы бөлүгү сен орнотуулары столго саптарды же бүтүн сактоо жана аларды алуу мүмкүн эмес. Бул алардын жогорку упай үнөмдөө үчүн оюнчунун атын сактап келген эч нерсе кыла берет.

Corona SDK: сүрөттөрү катмары кантип, сүрөттөрдү жылдыруу жана сүрөттөр үчүн алдыга алып