Corona SDK-da oyun məlumatlarını yükləmək və saxlamaq

Oyun Verilərini və Ayarlarını Saxlamaq üçün SQLite İstifadə Olun

Bir şey demək olar ki, hər bir app və oyun ümumi var, məlumat saxlamaq və almaq lazımdır. Hətta ən sadə oyun yükseltmeleri həyata keçirərkən uyğunluq təmin etmək üçün istifadə edilə bilər və ya oyun səs söndürmək və ya söndürmək kimi sadə parametrləri app versiyası sayı saxlamaq üçün SQLite istifadə edə bilərsiniz.

Əgər məlumat bazaları ilə çox iş görməmisinizsə və ya Corona SDK-da verilənlər bazası xüsusiyyətlərindən istifadə etsəniz, narahat olmayın. Bu LUA'nın gücüylə və Corona SDK'sında istifadə edilən SQLite verilənlər bazası motoru sayəsində həqiqətən nisbətən sadə bir prosesdir. Bu təlimçi parametrlər masasını yaratmaq və həm də məlumatdan saxlama və əldə etmək prosesindən keçəcəkdir. IPad tətbiqlərini necə inkişaf etdirmək olar?

Həmçinin bu texnikanın istifadəçi əsaslı parametrləri saxlamağın kənarına çıxa biləcəyini də unutmayın. Məsələn, "hekayə" rejimi və "arcade" rejimi kimi müxtəlif oyun rejimi istifadə edilə bilən bir oyun varsa. Bu parametrlər cədvəli mövcud rejimi saxlamaq üçün istifadə edilə bilər. Və ya istifadəçi oyundan çıxsa və onu yenidən açsalar da, qalıcı olmağınızın istənilən digər məlumatları.

Birinci addım: Verilənlər bazasını yaratmaq və parametrlər cədvəlini yaratmaq

Bizə lazım olan ilk şey SQLite kitabxanasını elan edir və verdiyimiz verilənlər bazasını tapmaq üçün tətbiqimizi bildirir. Bu kodun yerləşdirilməsi üçün ən yaxşı yer, əsas tələblərdən başqa, main.lua faylının yuxarı hissəsidir. Əgər tapılmadıqda verilənlər bazası faylı yaradılacaq və biz onu oxumaq və yaza bilmək üçün sənədlər qovluğunda saxlayacağıq.

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

"Db" dəyişəninin lokallaşdırılmadığına diqqət yetirin. Projemiz boyunca veritabanımıza erişebilmemiz üçün bunu gerçekleştirdik. Ayrıca, bütün verilənlər bazası funksiyaları üçün xüsusi bir .lua faylı yarada və verilənlər bazasını həmin faylda lokallaşdırmaq mümkündür.

Bundan sonra, parametrlərimizi saxlayacaq verilənlər bazası cədvəlini yaratmalıyıq:

local sql = "TƏQDİM OLUNUB əgər parametrləri (ad, dəyər);"
db: exec (sql);

Bu bəyanat bizim parametrlər tablosunu yaradır. Proqramın yükləndiyini hər dəfə yerinə yetirmək yaxşıdır, çünki cədvəl artıq mövcuddursa, bu bəyanat heç bir şey etməyəcək. Bu bəyanatı veritabanını elan etdiyimiz yerdə və ya tətbiqinizin qurulmasına imkan verən funksiyada yerləşdirə bilərsiniz. Əsas tələb (1) tətbiqin tətbiq olunduğuna hər dəfə bu bəyanatları yerinə yetirmək və (2) parametrləri yükləmək və ya saxlamaq üçün hər hansı zəngdən əvvəl onu icra etməkdir.

İki addım: Verilənlər bazasına məlumatların saxlanması

funksiya dəstiSetting (adı, dəyəri)
sql = "parametrlərdən silin WHERE name = '" .. name .. "';
db: exec (sql)

sql = "INSERT INTO parametrləri (ad, dəyər) VALUES ('" ..adı .. "," .. dəyər .. ");";
db: exec (sql)
son

funksiya setSettingString (adı, dəyəri)
setSetting (adı, "" .. dəyər .. "");
son

SetSetting funksiyası cədvəldə saxlanılan hər hansı əvvəlki parametrləri silmək və yeni dəyərimizi əlavə edir. Hər iki tamsayılar və strings ilə işləyəcək, lakin simli qənaət dəyərin ətrafında tək quotes tələb edir, belə ki, setSettingString funksiyasını istifadə etdiyimiz üçün bu işin əlavə işi üçün istifadə etdik.

Üç addım: Verilənlər bazasından parametrləri yükləyin

funksiya getSetting (ad)

local sql = "SELECT * FROM ayarlar harada WHERE name = '" .. name .. "';
Yerli dəyər = -1;

db: nrows (sql) do üçün satır
dəyər = sıra.value;
son

qaytarılma dəyəri;
son

funksiyası getSettingString (ad)
local sql = "SELECT * FROM ayarlar harada WHERE name = '" .. name .. "';
yerli dəyər = '';

db: nrows (sql) do üçün satır
dəyər = sıra.value;
son

qaytarılma dəyəri;
son

Yuxarıda olduğu kimi funksiyaları iki ədəd versiyaya ayırdıq: biri tamsayılar, biri isə strings üçün. Bunu etdiklərimizin əsas səbəbi, verilənlər bazasında heç bir parametr mövcud deyilsə, biz onları müəyyən dəyərlərlə başlaya biləcəyik. GetSetting funksiyası, parametrinin qeyd edilmədiyini bildirməyi xahiş edəcək -1-i qaytarır. GetSettingString boş bir dize qaytarır.

GetSettingString funksiyası tamamilə isteğe bağlıdır. Orada və normal getSetting funksiyası arasındakı fərq, verilənlər bazasında heç bir şey tapılmadıqda qaytarılır.

Dördüncü addım: Parametrlər tablosunu istifadə edin

İndi etdiyimiz çətin işlərimizə görə, parametrləri lokallaşdırılmış bazaya asanlıqla yükləyə və saxlaya bilərik. Məsələn, biz aşağıdakı ifadələri səs susdurmaq bilər:

setSetting ('səs', yanlış);

Səsləri səsləndirmək üçün qlobal funksiyadan istifadə edə bilərik:

funksiyası playSound (soundID)
əgər (getSetting ('sound')) sonra
audio.play (soundID)
son
son

Səsləri yenidən açmaq üçün sadəcə səs qəbulu doğru olaraq qurulur:

setSetting ('səs', doğru);

Bu funksiyalar haqqında gözəl bir hissə, parametrlər masasına strings və ya tam sayda qənaət edə və onları asanlıqla əldə edə bilərsiniz. Bu, bir oyunçu adını yüksək hesabı qənaət etmək üçün hər şeyi etməyə imkan verir.

Corona SDK: Layer Qrafik Layihəsi, Grafiği Move və Qrafikə Öncəyə Getmək