Як загрузіць і захаваць гульню дадзеных у Corona SDK

Як выкарыстоўваць SQLite, каб захоўваць гульні дадзеныя і налады

Адна рэч, амаль кожнае прыкладанне і гульня мае агульнае, неабходнасць захоўвання і здабывання дадзеных. Нават самая простая гульня можа выкарыстоўваць SQLite, каб захаваць нумар прыкладання версіі, якія могуць быць выкарыстаны для забеспячэння сумяшчальнасці пры выкананні абнаўлення, ці простыя налады, такія як ўключэнне гуку гульні або выключана.

Калі вы ніколі не рабілі шмат працы з базамі дадзеных або выкарыстоўваць функцыі базы дадзеных у Corona SDK , не хвалюйцеся. Гэта на самай справе адносна простым працэсам дзякуючы сіле LUA і SQLite рухавічок базы дадзеных, якая выкарыстоўваецца ў Corona SDK. Гэты падручнік будзе ісці праз працэс стварэння табліцы параметраў і як захоўванне i выманне інфармацыі з яго. Як распрацаваць IPad прыкладання.

Акрамя таго, майце на ўвазе, што гэты метад можа выйсці за межы захоўвання карыстацкіх на аснове налад. Напрыклад, што калі ў вас ёсць гульня, якая можа быць прайграны з выкарыстаннем розных рэжымаў гульні, такія як рэжым «гісторыя» і рэжым «Аркада». Гэтая табліца налады можа быць выкарыстана для захавання бягучага рэжыму. Або любая іншая частка дадзеных, якія вы хочаце, каб заставацца сталай, нават калі карыстальнік выходзіць з гульні і яго перазапуск кайт.

Крок першы: Ініцыялізацыя базы дадзеных і стварэнне табліцы параметраў

Першае, што нам трэба зрабіць, гэта аб'явіць бібліятэку SQLite і сказаць наша дадатак, дзе знайсці файл базы дадзеных. Лепшае месца, каб змясціць гэты код прама ў верхняй часткі файла main.lua разам з іншымі патрабуюць заявы. Файл базы дадзеных будзе створаны, калі нічога не знойдзена, і мы будзем захоўваць яго ў тэчцы Documents, так што мы можам чытаць з яго і пісаць у яго.

патрабуюць «sqlite3»
лакальная data_path = system.pathForFile ( "data.db", system.DocumentsDirectory);
дб = sqlite3.open (data_path);

Звярніце ўвагу, як зменная «дб" не лакалізаваны. Мы зрабілі гэта, каб пераканацца, што мы можам атрымаць доступ да базы дадзеных па ўсім нашаму праекту. Вы таксама можаце стварыць адмысловы файл .lua для ўсіх функцый базы дадзеных і захаваць базу дадзеных лакалізаваных у гэты файл.

Далей нам трэба стварыць табліцу базы дадзеных, якая будзе захоўваць нашы налады:

лакальны SQL = "CREATE TABLE IF NOT EXISTS параметры (імя, значэнне);"
БД: EXEC (SQL);

Гэты аператар стварае нашу табліцу налад. Гэта добра, каб запусціць яго кожны раз, калі праграма нагрузкі, таму што калі табліца ўжо існуе, то гэта сцвярджэнне не будзе нічога рабіць. Вы можаце змясціць гэта зацвярджэнне дакладна пры якім мы абвясцілі ў базе дадзеных або ў функцыі, якая настройвае прыкладанне для запуску. Галоўнае патрабаванне (1), каб выканаць гэтыя заявы кожны раз, калі праграма запускаецца і (2) выканаць яго перад выклікам для загрузкі або захавання налад.

Крок другі: Захаванне наладак ў базе дадзеных

Функцыя setSetting (імя, значэнне)
SQL = "DELETE FROM налады, дзе імя = '" .. імя .. "'";
БД: EXEC (SQL)

SQL = "INSERT INTO налады (імя, значэнне) VALUES ( '" ..name .. "'," .. значэнне .. ");";
БД: EXEC (SQL)
канец

Функцыя setSettingString (імя, значэнне)
setSetting (імя, " '" .. значэнне .. "'");
канец

Функцыя setSetting выдаляе ўсе папярэднія налады, захаваныя ў табліцы, і ўстаўляе наша новае значэнне. Ён будзе працаваць як з цэлымі лікамі і радкамі, але захаванне радка патрабуе адзіночных двукоссяў вакол значэння, таму мы выкарысталі функцыю setSettingString, каб зрабіць гэта дадатковы біт працы для нас.

Крок трэці: Загрузка налад з базы дадзеных

Функцыя getSetting (імя)

лакальны SQL = "SELECT * FROM налады WHERE імя = '" .. імя .. "'";
лакальнае значэнне = -1;

для радкі ў БД: Nrows (SQL) зрабіць
значэнне = row.value;
канец

вяртаецца значэнне;
канец

Функцыя getSettingString (імя)
лакальны SQL = "SELECT * FROM налады WHERE імя = '" .. імя .. "'";
лакальнае значэнне = "";

для радкі ў БД: Nrows (SQL) зрабіць
значэнне = row.value;
канец

вяртаецца значэнне;
канец

Як і вышэй, мы парушылі функцыі ў двух варыянтах: адзін для цэлых лікаў і адзін для радкоў. Асноўная прычына, чаму мы зрабілі гэта так, што мы можам ініцыялізаваць іх канкрэтнымі значэннямі, калі наладкі не існуе ў базе дадзеных. Функцыя getSetting вяртае -1, які дазволіць нам ведаць, што ўстаноўка не была захаваная. GetSettingString вяртае пусты радок.

Функцыя getSettingString не з'яўляецца абавязковай. Адзінае адрозненне паміж ім і нармальнай функцыяй getSetting з'яўляецца тое, што вяртаецца, калі нічога не знойдзена ў базе даных.

Крок чацвёрты: Выкарыстоўваючы нашу табліцу налад

Цяпер, калі мы цяжкая праца, мы можам лёгка загружаць і захоўваць налады ў лакалізаваных базы дадзеных. Напрыклад, мы маглі б адключыць гук з наступным сцвярджэннем:

setSetting ( 'гук', хлусня);

І мы маглі б выкарыстоўваць ўстаноўку ў глабальнай функцыі для прайгравання гукаў:

Функцыя PlaySound (soundID)
калі (getSetting ( 'гук')), то
audio.play (soundID)
канец
канец

Каб зноў ўключыць гук, мы проста ўсталяваць налады, каб праўдзівы гук:

setSetting ( 'гук', праўда);

Добрая частка аб гэтых функцыях вы можаце захаваць радкі або цэлыя лікі ў табліцу налад і аднавіць іх лёгка. Гэта дазваляе зрабіць што-небудзь ад эканоміі імя гульца, каб эканоміць іх высокі бал.

Corona SDK: Як Layer Graphics, Перамясціць Графіка і Давесці графікі на пярэдні план