Како учитати и сачувати податке о игри у Цорона СДК

Како користити СКЛите за чување података о игри и подешавања

Једна ствар је готово свака апликација и игра заједничка је потреба за чувањем података и њиховим прикупљањем. Чак и најједноставнија игра може користити СКЛите да сачува број верзије апликације, која се може користити за осигурање компатибилности приликом обављања надоградње или једноставних поставки као што је укључивање или искључивање звука игре.

Ако никада нисте радили много посла са базама података или користили функције базе података у Цорона СДК-у , не брините. То је заправо релативно јасан процес захваљујући моћи ЛУА и СКЛите базе података који се користи у Цорона СДК-у. Овај туторијал ће проћи кроз процес креирања табеле поставки и чувања и прикупљања информација из ње. Како развијати иПад апликације.

Такође, имајте на уму да ова техника може ићи даље од складиштења корисничких поставки. На пример, шта ако имате игру која се може репродуковати помоћу различитих режима игре као што су "прича" и "аркадни" режим. Ова табела поставки се може користити за чување тренутног режима. Или било који други податак који желите да останете упоран чак и ако корисник напусти игру и поново покрене.

Први корак: Иницијализација базе података и креирање табеле поставки

Прва ствар коју треба да урадимо је да декларишемо СКЛите библиотеку и испричамо нашој апликацији где да пронађемо датотеку базе података. Најбоље мјесто за постављање овог кода је на врху датотеке маин.луа заједно са другим захтевима изјава. Датотека базе података ће се створити ако ниједно не пронађе, а ми ћемо је ускладиштити у фасцикли "Документи", тако да можемо да прочитамо и пишемо на њега.

захтевају "склите3"
локални дата_патх = систем.патхФорФиле ("дата.дб", систем.ДоцументсДирецтори);
дб = склите3.опен (дата_патх);

Обратите пажњу на то како варијабла "дб" није локализована. То смо учинили како бисмо осигурали приступ бази података током нашег пројекта. Такође можете креирати специфичну .луа датотеку за све функције базе података и задржати базу података локализовану за ту датотеку.

Затим, потребно је креирати таблицу базе података која ће ускладиштити наша подешавања:

локални скл = "ЦРЕАТЕ ТАБЛЕ ИФ НЕ ПОСТАВЉА подешавања (име, вредност);"
дб: екец (скл);

Ова изјава ствара нашу табелу поставки. У реду је да покренете сваки пут када апликација учита јер ако већ постоји табела, ова изјава неће учинити ништа. Ову изјаву можете ставити тачно испод тога гдје смо објавили базу података или у функцији која поставља апликацију која ради. Главни захтев је (1) да извршава те изјаве сваки пут када се апликација покрене и (2) изврши је пре било ког позива да учита или сачува подешавања.

Други корак: чување поставки у бази података

функција сетСеттинг (име, вриједност)
скл = "ДЕЛЕТЕ ФРОМ сеттингс ВХЕРЕ наме = '" .. наме .. "'";
дб: екец (скл)

скл = "ИНСЕРТ ИНТО подешавања (име, вредност) ВАЛУЕС ('' ..наме .. ''," .. валуе .. ");";
дб: екец (скл)
крај

функција сетСеттингСтринг (име, вриједност)
сетСеттинг (име, "'" .. вредност .. "'");
крај

Функција сетСеттинг брише било које претходне поставке сачуване у табели и убацује нашу нову вредност. Радит ће се са целим бројевима и низовима, али чување стринга захтијева поједине цитате око вриједности, тако да смо користили функцију сетСеттингСтринг да бисмо направили тај додатни дио посла за нас.

Трећи корак: Учитавање поставки из базе података

функција гетСеттинг (име)

лоцал скл = "СЕЛЕЦТ * ФРОМ сеттингс ВХЕРЕ наме = '" .. наме .. "'";
локална вредност = -1;

за ред у дб: нровс (скл) до
вредност = ред.валуе;
крај

повратна вредност;
крај

функција гетСеттингСтринг (име)
лоцал скл = "СЕЛЕЦТ * ФРОМ сеттингс ВХЕРЕ наме = '" .. наме .. "'";
локална вредност = '';

за ред у дб: нровс (скл) до
вредност = ред.валуе;
крај

повратна вредност;
крај

Као и горе, прекинули смо функције у две верзије: један за целине и један за стрингове. Главни разлог што смо то урадили је да их можемо иницијализирати са одређеним вредностима ако у бази података не постоји опција. Функција гетСеттинг ће вратити -1, што ће нам рећи да поставка није сачувана. ГетСеттингСтринг ће вратити празан низ.

Функција гетСеттингСтринг је потпуно необавезна. Једина разлика између њега и нормалне гетСеттинг функције је оно што се враћа ако ништа није пронађено у бази података.

Четврти корак: Користите нашу табелу за подешавања

Сада када имамо напорни рад, лако можемо учитати и сачувати поставке у локализовану базу података. На пример, могли бисмо искључити звук са следећом изјавом:

сетСеттинг ('звук', лажно);

И могли бисмо искористити поставку у глобалној функцији за репродукцију звука:

функција плаиСоунд (соундИД)
ако (гетСеттинг ('звук') онда)
аудио.плаи (соундИД)
крај
крај

Да поново укључимо звук, поставку звука једноставно подесите на труе:

сетСеттинг ('звук', тачно);

Добар део о овим функцијама можете сачувати низове или интегере у табели поставки и лако их преузети. Ово вам омогућава да урадите било шта да сачувате име играча да би сачували свој високи резултат.

Корона СДК: Како да слој графике, померите графику и доведете графику на предњу страну