કેવી રીતે લોડ કરો અને કોરોના એસડીકેમાં ગેમ ડેટા સાચવો

ગેમ ડેટા અને સેટિંગ્સ સ્ટોર કરવા માટે SQLite કેવી રીતે વાપરવી

એક વસ્તુ લગભગ દરેક એપ્લિકેશન અને રમતમાં સામાન્ય છે, ડેટાને સંગ્રહિત કરવાની અને પુનઃપ્રાપ્ત કરવાની જરૂર છે. પણ સૌથી સરળ રમત એપ્લિકેશન વર્ઝન નંબરને સાચવવા માટે SQLite નો ઉપયોગ કરી શકે છે, જેનો ઉપયોગ અપગ્રેડ કરી રહ્યા હોય ત્યારે સુસંગતતા સુનિશ્ચિત કરવા માટે અથવા રમતના અવાજને ચાલુ અથવા બંધ કરવા જેવા સરળ સેટિંગ્સ માટે કરી શકાય છે.

જો તમે કોરાના એસડીકેમાં ડેટાબેઝ સુવિધાઓનો ઉપયોગ કરતા હોવ અથવા ડેટાબેઝ સુવિધાઓનો ઉપયોગ ન કર્યો હોય તો ચિંતા કરશો નહીં. તે વાસ્તવમાં પ્રમાણમાં સરળ પ્રક્રિયા છે, લુએની શક્તિ અને કોરોના એસડીકેમાં ઉપયોગમાં લેવાતા SQLite ડેટાબેઝ એન્જિનનો આભાર. આ ટ્યુટોરીયલ સેટિંગ્સ ટેબલ બનાવવાની પ્રક્રિયાની મદદથી ચાલશે અને તેમાંથી માહિતી સંગ્રહવા અને પુનર્પ્રાપ્ત કરશે. આઈપેડ એપ્લિકેશન્સ કેવી રીતે વિકસાવવા

પણ ધ્યાનમાં રાખો કે આ ટેકનીક વપરાશકર્તા-આધારિત સેટિંગ્સને સંગ્રહિત કરતા આગળ વધી શકે છે. ઉદાહરણ તરીકે, જો તમારી પાસે રમત છે જે "વાર્તા" મોડ અને "આર્કેડ" મોડ જેવી વિવિધ રમત સ્થિતિઓનો ઉપયોગ કરીને રમી શકાય છે. આ સેટિંગ્સ ટેબલનો ઉપયોગ વર્તમાન મોડને સંગ્રહિત કરવા માટે થઈ શકે છે. અથવા ડેટાનો બીજો કોઈ ભાગ જે તમે સતત રહેવું હોય તો પણ જો વપરાશકર્તા રમતમાંથી બહાર નીકળી જાય અને તેને ફરીથી લોન્ચ કરે તો પણ.

એક પગલું: ડેટાબેસ શરૂ કરી અને સેટિંગ્સ ટેબલ બનાવવા

આપણે જે પ્રથમ વસ્તુ કરવાની જરૂર છે તે SQLite લાઇબ્રેરી જાહેર કરે છે અને ડેટાબેઝ ફાઇલને શોધવા માટે અમારા એપ્લિકેશનને જણાવો. આ કોડ મુકવા માટેનું શ્રેષ્ઠ સ્થાન મુખ્ય. Lua ફાઇલના શીર્ષ પર જ છે, જેમાં અન્ય વિધાનોની જરૂર છે. જો કોઈ મળ્યું ન હોય તો ડેટાબેઝ ફાઇલ બનાવવામાં આવશે, અને અમે તેને દસ્તાવેજોના ફોલ્ડરમાં સંગ્રહિત કરીશું જેથી અમે તેને વાંચી અને તેના પર લખી શકીએ.

"sqlite3" જરૂરી છે
સ્થાનિક માહિતી_પથ = system.pathForFile ("data.db", system.documents.directory);
db = sqlite3.open (data_path);

નોંધ લો કે કેવી રીતે "db" વેરીએબલ સ્થાનિક નથી. અમે અમારા પ્રોજેક્ટમાં ડેટાબેસને ઍક્સેસ કરી શકીએ તે સુનિશ્ચિત કરવા માટે અમે આ કર્યું છે. તમે બધા ડેટાબેઝ ફંક્શનો માટે ચોક્કસ .lua ફાઇલ બનાવી શકો છો અને ડેટાબેઝને તે ફાઇલમાં સ્થાનાંતરિત રાખી શકો છો.

આગળ, અમારે ડેટાબેઝ કોષ્ટક બનાવવાની જરૂર છે જે અમારી સેટિંગ્સ સંગ્રહિત કરશે:

સ્થાનિક એસક્યુએલ = "સેટિંગ ટેબલ નથી જો સેટિંગ્સ (નામ, કિંમત);"
db: exec (sql);

આ સ્ટેટમેન્ટ અમારા સેટિંગ્સ ટેબલ બનાવે છે. તે દરેક વખતે એપ્લિકેશન લોડ ચલાવવાનું ઠીક છે કારણ કે જો કોષ્ટક પહેલાથી અસ્તિત્વમાં છે, તો આ નિવેદનમાં કાંઇ નહીં કરશે. તમે આ નિવેદન જમણી બાજુએ મૂકી શકો છો જ્યાં અમે ડેટાબેસ ઘોષણા કરી છે અથવા કાર્ય ચલાવવા માટે તમારી એપ્લિકેશનને સુયોજિત કરે છે. મુખ્ય જરૂરિયાત એ છે (1) જે તે નિવેદનોને એપ્લિકેશન લોન્ચ કરવામાં આવે છે તે વખતે ચલાવવા માટે અને (2) સેટિંગ્સ લોડ કરવા અથવા સાચવવા માટે કોઈપણ કોલ્સ પહેલાં તેને એક્ઝિક્યુટ કરો.

પગલું બે: ડેટાબેઝ પર સેટિંગ્સ સાચવી રહ્યું છે

ફંક્શન સેટ સેટિંગ (નામ, મૂલ્ય)
sql = "સેટિંગ્સમાંથી કાઢી નાંખો જ્યાં નામ = '" .. નામ .. "'" ";
db: exec (sql)

sql = "સેટિંગ્સમાં દાખલ કરો (નામ, મૂલ્ય) મૂલ્યો ('" ..name .. "," .. કિંમત .. ");";
db: exec (sql)
અંત

ફંક્શન સેટ સેટિંગ સ્ટ્રિંગ (નામ, મૂલ્ય)
setSetting (નામ, "'" .. કિંમત .. "' ');
અંત

SetSetting કાર્ય ટેબલ પર સાચવવામાં કોઈપણ પહેલાની સેટિંગ્સ કાઢી નાંખે છે અને અમારી નવી કિંમત દાખલ કરે છે. તે બંને પૂર્ણાંક અને શબ્દમાળાઓ સાથે કામ કરશે, પરંતુ સ્ટ્રિગને બચાવવા માટે મૂલ્યની આસપાસ એક જ અવતરણની જરૂર છે, તેથી અમે setSettingString કાર્યનો ઉપયોગ અમારા માટે તે વધારાની બીટ કાર્ય કરવા માટે કર્યો છે.

પગલું ત્રણ: ડેટાબેઝમાંથી સેટિંગ્સ લોડ કરી રહ્યું છે

કાર્ય getSetting (નામ)

સ્થાનિક sql = "SELECT * FROM SETTINGS WHERE NAME = '" .. નામ .. "' '";
સ્થાનિક મૂલ્ય = -1;

ડીબીમાં પંક્તિ માટે: નારો (એસક્યુએલ) કરવું
મૂલ્ય = row.value;
અંત

વળતર કિંમત;
અંત

કાર્ય getSettingString (નામ)
સ્થાનિક sql = "SELECT * FROM SETTINGS WHERE NAME = '" .. નામ .. "' '";
સ્થાનિક મૂલ્ય = '';

ડીબીમાં પંક્તિ માટે: નારો (એસક્યુએલ) કરવું
મૂલ્ય = row.value;
અંત

વળતર કિંમત;
અંત

ઉપર પ્રમાણે, અમે વિધેયોને બે આવૃત્તિઓમાં તોડ્યા છે: એક પૂર્ણાંક માટે અને એક શબ્દમાળા માટે. ડેટાબેઝમાં જો કોઈ સેટિંગ અસ્તિત્વમાં ન હોય તો અમે આનું મુખ્ય કારણ એ કર્યું છે કે જેથી આપણે તેને વિશિષ્ટ કિંમતો સાથે પ્રારંભ કરી શકીએ. GetSetting કાર્ય -1 આપશે, જે અમને જણાવશે કે સેટિંગ સાચવવામાં આવી નથી. GetSettingString એક ખાલી શબ્દમાળા આપશે.

GetSettingString કાર્ય સંપૂર્ણપણે વૈકલ્પિક છે તે અને સામાન્ય getSetting કાર્ય વચ્ચેનો માત્ર એટલો જ તફાવત છે જો ડેટાબેઝમાં કંઈ મળ્યું ન હોય તો શું પાછું આવે છે

ચાર પગલાં: અમારા સેટિંગ્સ ટેબલનો ઉપયોગ કરવો

હવે અમે હાર્ડ કામ કર્યું છે, અમે સરળતાથી લોડ અને સ્થાનિક ડેટાબેઝ માટે સેટિંગ્સ સેવ કરી શકો છો ઉદાહરણ તરીકે, અમે નીચેના નિવેદન સાથે અવાજને મ્યૂટ કરી શકીએ છીએ:

setSetting ('સાઉન્ડ', ખોટા);

અને અમે ધ્વનિ ચલાવવા માટે ગ્લોબલ ફંક્શનમાં સેટિંગનો ઉપયોગ કરી શકીએ છીએ:

ફંક્શન પ્લેસઉન્ડ (સાઉન્ડઆઇડી)
જો (getSetting ('અવાજ')) પછી
ઑડિઓ.પ્લે (સાઉન્ડઆઇડી)
અંત
અંત

અવાજને ચાલુ કરવા માટે, અમે સાઉન્ડ સેટિંગને સાચું સેટ કરીએ છીએ:

setSetting ('સાઉન્ડ', સાચું);

આ વિધેયો વિશેનો સરસ ભાગ તમે સેટિંગ્સ ટેબલ પર સ્ટ્રીંગ્સ અથવા પૂર્ણાંકોને બચાવી શકો છો અને તેમને સરળતાથી મેળવી શકો છો. આ તમને તેમના ઉચ્ચ સ્કોર બચાવવા માટે કોઈ ખેલાડીનું નામ બચાવવા માટે કંઈ પણ કરવા દે છે.

કોરોના એસડીકે: લેયર ગ્રાફિક્સ, ગ્રાફિક્સ ખસેડો અને આગળ ગ્રાફિક્સ લાવો કેવી રીતે