Чӣ тавр ба бор ва Захиракунии маълумотҳои Game дар Corona SDK

Чӣ тавр истифода бурдани SQLite барои Store Store ва Танзимоти бозиҳо

Як чизи қариб ҳар барнома ва бозии умумӣ вуҷуд дорад, зарурати нигаҳдорӣ ва гирифтани маълумот. Ҳатто бозии оддӣ метавонад аз SQLite барои наҷот додани рақами версияи барнома, ки барои таъмини мувофиқ ҳангоми иҷрои вазифаҳои навсозӣ, ё танзимоти оддӣ, ба монанди тағир кардани садои бозӣ барпо ё хомӯш карда шавад.

Агар шумо ягон кори зиёде бо пойгоҳи додаҳоро анҷом надиҳед ё хусусиятҳои базаи маълумотҳоро дар Corona SDK истифода набаред , ғам нахӯред. Ин дар ҳақиқат як раванди нисбатан содда аст, ки ба воситаи қувваи LUA ва муҳаррики SQLite дар Corona SDK истифода мешавад. Ин омӯзиш бо раванди эҷоди мизҳои танзимотӣ ва ҳам нигоҳ доштани иттилоот аз он мегузарад. Чӣ тавр рушди барномаҳои iPad.

Ҳамчунин дар хотир доред, ки ин техника метавонад аз танзимоти танзимоти истифодабарандагон барнадорад. Масалан, агар шумо бозӣ дошта бошед, ки бо истифода аз услубҳои гуногуни бозӣ, аз қабили "ҳикоя" ва "аркад" -ро ба кор баред. Ин маҷмӯи танзимот барои нигаҳдории ҳолати ҷорӣ истифода бурда мешавад. Ё дигар пораи маълумоте, ки шумо мехоҳед доимо боқӣ монед, ҳатто агар истифодабаранда аз бозӣ даст кашад ва онро такрор кунад.

Қадами One: Илова кардани базаи маълумотҳо ва мизҳои танзимӣ

Аввалин чизе, ки мо бояд кардан лозим аст, китобхонаи SQLite эълон мекунад ва ба мо муроҷиат мекунем, ки дар он ҷо файли пойгоҳи додаҳо. Беҳтарин ҷой барои рамзи ин рамзи дуруст дар болои файли main.lua дар якҷоягӣ бо дигар изҳороти талаб. Файли базисӣ пайдо мешавад, агар ягон чиз ёфт нашавад ва онро дар ҷузвдони ҳуҷҷатҳо нигоҳ медорем, то ки мо онро хонда ва онро нависем.

талаб мекунад "sqlite3"
data_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (data_path);

Аҳамият диҳед, ки чӣ гуна тағйироти "db" маҳдуд карда шавад. Мо ин корро анҷом додем, то боварӣ ҳосил кунем, ки мо метавонем ба пойгоҳи додаҳо дар тамоми лоиҳа дастрас шавем. Шумо инчунин метавонед файли мушаххаси файлро барои ҳамаи функсияҳои пойгоҳи дода созед ва пойгоҳи додашударо ба ин файли маҳкам кунед.

Баъдан, мо бояд мизи маълумотро тартиб диҳем, ки танзимоти моро нигоҳ медорад:

sql local = "ТАВСИФАИ НАЗДИ ҲУКУМАТИ НАҚЛИЁТӢ (ном, арзиш);"
db: exec (sql);

Ин изҳорот мизҳои танзимоти моро месозад. Ин хуб аст, ки ҳар боре, ки барнома кор мекунад, онро иҷро кунад, зеро агар мизи аллакай вуҷуд дошта бошад, ин изҳорот ҳеҷ коре намекунад. Шумо метавонед ин изҳоротро дар куҷо ҷойгир кунед ё дар функсияе, ки барномаатонро иҷро кунед, гузоред. Талаботи асосӣ ин аст (1) ҳар боре, ки барнома замима карда мешавад, иҷро мекунад ва (2) онро пеш аз ягон занг ба бор кардан ё захира кардани танзимот иҷро мекунад.

Қадами ду: Танзимоти тез ба пойгоҳи додаҳо

Функсияҳои функсионалӣ (ном, аҳамият)
sql = "ТАЙЁРИ ТАРАФҲО ТАЙЁР НЕСТ" = "... .. name .." '";
db: exec (sql)

sql = "Танзимоти INSERT IN (ном, арзиш) VALUES ('" ..name ..' ', ".. value .."); ";
db: exec (sql)
Поён

Функсияи SETString (ном, аҳамият)
Нишондиҳандаҳо (ном, "'" .. value .. "'");
Поён

Функсияи setSetting ҳар гуна танзимоти пештараро ба мизи захира мекунад ва арзиши навро дохил мекунад. Ин ҳам бо ҳам ҳамоҳангсозӣ ва хатҳои корӣ кор мекунад, аммо захираи захираро дар атрофи арзиш талаб мекунад, бинобар ин, мо вазифаи setSettingString -ро барои кор кардани ин кори иловагӣ барои мо истифода бурдем.

Қадами се: Танзимоти пойгоҳи додаҳо

Файли функсияи (ном)

sql local = "СЕНЕТТАНИҲОИ ТАРБИЯҲОИ ТАТБИҚА НЕСТ Name = '" .. name .. "'";
арзиши маҳаллӣ = -1;

барои сатр дар db: tails (sql) кунед
value = row.value;
Поён

Арзиши баргаштан;
Поён

Функсияҳои функсияҳо (ном)
sql local = "СЕНЕТТАНИҲОИ ТАРБИЯҲОИ ТАТБИҚА НЕСТ Name = '" .. name .. "'";
арзиши маҳаллӣ = '';

барои сатр дар db: tails (sql) кунед
value = row.value;
Поён

Арзиши баргаштан;
Поён

Дар боло, мо функсияҳоро ба ду намуди нохунҳо шикастем: яке аз ҳосарҳо ва як сатр. Сабаби асосии мо ин аст, ки мо метавонем онҳоро бо арзишҳои мушаххас ба вуҷуд оварем, агар ягон воҳиди мавҷуд набудани базаи маълумот вуҷуд надошта бошад. Функсияи getSetting -1-ро бармегардонад, ки ба мо имкон медиҳад, ки танзимот наҷот надиҳад. GetSettingString ранги сафедро бармегардонад.

Функсияи getSettingString is completely optional. Танҳо фарқияти байни он ва функсияҳои оддии ҷустуҷӯӣ он чизест, ки агар дар базаи маълумотҳо ягон чиз пайдо нашавад.

Қадами чаҳорум: Истифодаи ҷадвалҳои танзимоти мо

Акнун, ки мо коре душворие дорем, мо метавонем осонтар ва захираи танзимотро ба пойгоҳи маҳаллии маҳаллӣ бор кунем. Масалан, мо метавонем садои худро бо изҳороти зерин зада метавонем:

setSetting ('sound', false);

Ва мо метавонем, ки танзимотро дар функсияҳои глобалӣ барои бозсозии овозҳо истифода барем:

функсияи playSound (soundID)
агар (getSetting ('sound')) бошад
audio.play (soundID)
Поён
Поён

Барои баргардонидани садои такрорӣ, мо фақат танзими садо ба рост:

setSetting ('sound', true);

Қисми хубе дар бораи ин функсияҳо шумо метавонед сатрҳо ё ҳаҷми то мизҳои танзимиро захира кунед ва онҳоро ба осонӣ гиред. Ин ба шумо имкон медиҳад, ки аз наҷотдиҳии номи плеер барои наҷот додани холҳои баланди худ.

Corona SDK: Чӣ тавр ба Графикҳо, Графикҳо ва Графикӣ ба Front