കൊറോണ SDK ഗെയിം ഡാറ്റ ലോഡ് എങ്ങനെ സംരക്ഷിക്കും

ഡാറ്റയും ക്രമീകരണങ്ങളും സംഭരിക്കാൻ SQLite ഉപയോഗിക്കുന്നതിന് എങ്ങനെ ഉപയോഗിക്കാം

ഓരോ ആപ്ലിക്കേഷനും ഗെയിമിനും പൊതുവായി ഒരു കാര്യം ഡാറ്റ സംഭരിക്കാനും വീണ്ടെടുക്കാനും ആവശ്യമാണ്. അപ്ഗ്രേഡ് ചെയ്യുമ്പോൾ അനുയോജ്യത ഉറപ്പാക്കാൻ ആപ്ലിക്കേഷൻ പതിപ്പ് നമ്പർ സംരക്ഷിക്കാൻ ലളിതമായ ലളിതമായ ഗെയിം ഉപയോഗിക്കാനാവും, അല്ലെങ്കിൽ ഗെയിം ശബ്ദത്തെ ഓണാക്കുകയോ ഓഫാക്കുകയോ ചെയ്യൽ പോലുള്ള ലളിതമായ സജ്ജീകരണങ്ങൾ ഉപയോഗിക്കാം.

ഡാറ്റാബേസുകളിലോ, കൊറോണ SDK- ൽ ഡാറ്റാബേസ് ഫീച്ചറുകളിലോ നിങ്ങൾ വളരെ അധികം പ്രവർത്തിച്ചിട്ടില്ലെങ്കിൽ വിഷമിക്കേണ്ട. ല്യൂസയുടെ ശക്തിയും കൊറോണ SDK- യിൽ ഉപയോഗിച്ചിരിക്കുന്ന എസ്.ക്ലെയ്റ്റ് ഡാറ്റാബേസ് എൻജിനും ഇതിന് വളരെ ലളിതമായ പ്രക്രിയയാണ്. ഈ ട്യൂട്ടോറിയൽ ഒരു ക്രമീകരണങ്ങളുടെ പട്ടിക സൃഷ്ടിക്കുന്നതിലൂടെയും അതിൽ നിന്ന് വിവരങ്ങൾ ശേഖരിക്കാനും വീണ്ടെടുക്കാനും കഴിയും. ഐപാഡ് അപ്ലിക്കേഷനുകൾ എങ്ങനെ വികസിപ്പിക്കാം.

ഈ രീതി ഉപയോക്താവിനെ അടിസ്ഥാനമാക്കിയ ക്രമീകരണങ്ങൾ സൂക്ഷിക്കുന്നതിനേക്കാളും പിന്നിലായെന്നതും ശ്രദ്ധിക്കുക. ഉദാഹരണത്തിന്, "കഥ" മോഡ്, "ആർക്കേഡ്" മോഡ് എന്നിവ പോലുള്ള വ്യത്യസ്ത ഗെയിം മോഡുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് കളിക്കാൻ കഴിയുന്ന ഗെയിം ഉണ്ടെങ്കിൽ എന്തുചെയ്യും. നിലവിലുള്ള മോഡ് സൂക്ഷിയ്ക്കുന്നതിനു് ഈ സജ്ജീകരണ പട്ടിക ഉപയോഗിയ്ക്കാം. അല്ലെങ്കിൽ ഉപയോക്താവ് ഗെയിമില് നിന്നും പുറത്തു പോവുകയും വീണ്ടും സമാരംഭിക്കുകയും ചെയ്താലും തുടരേണ്ട മറ്റെന്തെങ്കിലും ഡാറ്റ.

ഘട്ടം ഒന്ന്: ഡാറ്റാബേസ് സമാരംഭിച്ച് ക്രമീകരണങ്ങളുടെ പട്ടിക ഉണ്ടാക്കുക

ഞങ്ങൾ ആദ്യം ചെയ്യേണ്ടത് SQLite ലൈബ്രറി പ്രഖ്യാപിച്ച് ഡാറ്റാബേസ് ഫയൽ എവിടെ കണ്ടെത്തുന്നതിന് ഞങ്ങളോട് പറയുക. ഈ കോഡിന്റെ ഏറ്റവും മികച്ച സ്ഥലം പ്രധാന വോളിയം ഫയലിന്റെ മുകളിലാണുള്ളത്, മറ്റ് ആവശ്യാനുസരണം പ്രസ്താവനകളും. ഒന്നും കണ്ടെത്താനായില്ലെങ്കിൽ ഡേറ്റാബേസ് ഫയൽ സൃഷ്ടിക്കും, നമ്മൾ അതിനെ ഡോക്യുമെന്റുകൾ ഫോൾഡറിൽ സംഭരിക്കും. അപ്പോൾ അതിൽ നിന്ന് നിങ്ങൾക്ക് വായിക്കാനും അതിലേക്ക് എഴുതാനും സാധിക്കും.

"sqlite3" ആവശ്യമുണ്ട്
local data_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (data_path);

"Db" വേരിയബിള് എങ്ങനെ പ്രാദേശികമാധ്യമയല്ല എന്ന് ശ്രദ്ധിക്കുക. ഞങ്ങളുടെ പ്രോജക്റ്റ് ഉടനീളം ഡാറ്റാബേസ് ആക്സസ് ചെയ്യാൻ കഴിയുമെന്ന് ഉറപ്പാക്കാൻ ഞങ്ങൾ ഇത് ചെയ്തു. എല്ലാ ഡേറ്റാബേസ് ഫംഗ്ഷനുകൾക്കും ഒരു .lua ഫയൽ സൃഷ്ടിക്കാനും ഡാറ്റാബേസ് ആ ഫയലിൽ പ്രാദേശികമായി സൂക്ഷിക്കാനും നിങ്ങൾക്ക് കഴിയും.

അടുത്തതായി, ഞങ്ങളുടെ ക്രമീകരണങ്ങൾ സംഭരിക്കുന്ന ഡാറ്റാബേസ് പട്ടിക സൃഷ്ടിക്കേണ്ടതുണ്ട്:

പ്രാദേശിക സ്ക്വയർ = "ടൈപ്പുചെയ്യൽ ക്രമീകരണങ്ങൾ അസാധ്യമല്ലെങ്കിൽ (പേര്, മൂല്യം);"
db: എക്സിക് (sql);

ഈ പ്രസ്താവന ഞങ്ങളുടെ ക്രമീകരണങ്ങളുടെ പട്ടിക സൃഷ്ടിക്കുന്നു. അപ്ലിക്കേഷൻ ലോഡ് ചെയ്താൽ എല്ലായിടത്തും പ്രവർത്തിപ്പിക്കാൻ ഇത് കുഴപ്പമില്ല കാരണം പട്ടിക നിലവിലുണ്ടെങ്കിൽ ഈ പ്രസ്താവന ഒന്നും ചെയ്യില്ല. ഡാറ്റാബേസ് അല്ലെങ്കിൽ നിങ്ങളുടെ അപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള ഫംഗ്ഷനിലെ പ്രവർത്തനം ഞങ്ങൾ പ്രഖ്യാപിച്ചിട്ടുണ്ടെങ്കിൽ ഈ പ്രസ്താവന നിങ്ങൾക്ക് നൽകാം. പ്രധാന ആവശ്യം (1) ആപ്ലിക്കേഷൻ ആരംഭിച്ചപ്പോഴെല്ലാം ആ പ്രസ്താവനകൾ നടപ്പിലാക്കുകയും (2) സജ്ജീകരണങ്ങൾ ലോഡുചെയ്യാനോ സംരക്ഷിക്കാനോ ഏതെങ്കിലും കോൾ ചെയ്യുന്നതിന് മുമ്പായി അത് നിർവ്വഹിക്കുക.

സ്റ്റെപ്പ് രണ്ട്: ഡാറ്റാബേസിൽ സെറ്റിംഗ്സ് സേവ് ചെയ്യുക

ഫങ്ഷൻ സെറ്റ് സജ്ജീകരിക്കുന്നു (പേര്, മൂല്യം)
sql = "സജ്ജീകരണങ്ങളിൽ നിന്നും DELETE WHERE name = '" .. പേര് .. "'";
db: എക്സിക്യുട്ടീവ് (sql)

sql = "INSERT INTO സജ്ജീകരണങ്ങൾ (നാമം, മൂല്യം) VALUES ('" ..നാമം .. "', '.. മൂല്യം ..');";
db: എക്സിക്യുട്ടീവ് (sql)
അവസാനിക്കുന്നു

ഫങ്ഷൻ സെറ്റ്സെറ്റിങ് സ്ടറിംഗ് (പേര്, മൂല്യം)
setSetting (പേര്, ".." മൂല്യം .. "'");
അവസാനിക്കുന്നു

SetSetting ഫംഗ്ഷൻ പട്ടികയിൽ സംരക്ഷിച്ചിട്ടുള്ള ഏതെങ്കിലും മുൻഗണനകൾ ഇല്ലാതാക്കുകയും ഞങ്ങളുടെ പുതിയ മൂല്യം കൂട്ടിച്ചേർക്കുകയും ചെയ്യുന്നു. ഇത് പൂർണ്ണസംഖ്യകളേയും സ്ട്രിങ്ങുകളേയും ഉപയോഗിച്ച് പ്രവർത്തിക്കും, എന്നാൽ ഒരു സ്ട്രിംഗ് സംരക്ഷിക്കുന്നത് മൂല്യത്തേക്കാൾ ഒറ്റ സിംഗിൾ കോഡുകളായിരിക്കണം, അതിനാൽ ഞങ്ങൾ ആ കൂടുതൽ കൂടുതൽ പ്രവൃത്തികൾ ചെയ്യാൻ setSettingString ഫംഗ്ഷൻ ഉപയോഗിച്ചിട്ടുണ്ട്.

സ്റ്റെപ്പ് മൂന്ന്: ഡാറ്റാബേസിൽ നിന്ന് ക്രമീകരണം ലോഡ് ചെയ്യുന്നു

പ്രവർത്തനം getetting (name)

പ്രാദേശിക സ്ക്വയർ = "എവിടെ നിന്നും ക്രമീകരണങ്ങൾ തിരഞ്ഞെടുക്കുക WHERE name = '" .. പേര് .. "'";
പ്രാദേശിക മൂല്യം = -1;

db യിൽ വരികൾക്കായി: nrows (sql) do ചെയ്യുക
മൂല്യം = row.value;
അവസാനിക്കുന്നു

തിരികെ മൂല്യം;
അവസാനിക്കുന്നു

ഫങ്ഷൻ getSettingString (നാമം)
പ്രാദേശിക സ്ക്വയർ = "എവിടെ നിന്നും ക്രമീകരണങ്ങൾ തിരഞ്ഞെടുക്കുക WHERE name = '" .. പേര് .. "'";
പ്രാദേശിക മൂല്യം = '';

db യിൽ വരികൾക്കായി: nrows (sql) do ചെയ്യുക
മൂല്യം = row.value;
അവസാനിക്കുന്നു

തിരികെ മൂല്യം;
അവസാനിക്കുന്നു

മുകളിൽ പറഞ്ഞ പോലെ, ഞങ്ങൾ ഫങ്ഷനുകളെ രണ്ട് പതിപ്പുകൾക്കായി തകർത്തിരിക്കുന്നു: ഒന്ന് സങ്കലനത്തിനും ഒന്ന് സ്ട്രിംഗിനും ഒന്ന്. ഡാറ്റാബേസിൽ ഒരു ക്രമീകരണവും ഇല്ലെങ്കിൽ നമ്മൾ നിർദ്ദിഷ്ട മൂല്യങ്ങളാൽ അവയെ സമാരംഭിക്കാവുന്നതാണു് പ്രധാന പ്രശ്നം. Getetting ഫങ്ഷൻ -1 നൽകും, ക്രമീകരണം സെറ്റ് ചെയ്തിട്ടില്ലെന്ന് ഞങ്ങളെ അറിയിക്കും. GetSettingString ഒരു ശൂന്യ സ്ട്രിംഗ് നൽകും.

GetSettingString ഫംഗ്ഷൻ പൂർണമായും ഓപ്ഷണലാണ്. അതിനും സാധാരണമായ getSetting ഫങ്ഷനുമിടയിലുള്ള വ്യത്യാസം മാത്രമാണ് ഡാറ്റാബേസിൽ ഒന്നും കണ്ടെത്തിയില്ലെങ്കിൽ മാത്രം നൽകപ്പെട്ടത്.

ഘട്ടം നാല്: ഞങ്ങളുടെ ക്രമീകരണങ്ങളുടെ പട്ടിക

ഇപ്പോൾ കഠിനാധ്വാനം ചെയ്തുകഴിഞ്ഞു, നമുക്ക് ഒരു ലോക്കലൈസ്ഡ് ഡാറ്റാബേസിലേക്ക് ക്രമീകരണം എളുപ്പത്തിൽ ലോഡുചെയ്യാനും സംരക്ഷിക്കാനും കഴിയും. ഉദാഹരണത്തിന്, നമുക്ക് ഇനിപ്പറയുന്ന പ്രസ്താവനയ്ക്കൊപ്പം ശബ്ദം നിശബ്ദമാക്കാം:

setSetting ('ശബ്ദം', false);

ശബ്ദങ്ങൾ കളിക്കാൻ ഒരു ആഗോള ഫംഗ്ഷനിലെ ക്രമീകരണം നമുക്ക് ഉപയോഗപ്പെടുത്താം:

ഫങ്ഷൻ പ്ലേഡ് (സൗണ്ട്ഐഡി)
(getSetting ('sound'))
audio.play (soundID)
അവസാനിക്കുന്നു
അവസാനിക്കുന്നു

ശബ്ദം വീണ്ടും ഓണാക്കാൻ, സൗണ്ട് ക്രമീകരണം ലളിതമായി ക്രമീകരിക്കുന്നു:

setSetting ('sound', true);

ഈ ഫംഗ്ഷനുകളെക്കുറിച്ചുള്ള നല്ല ഭാഗം, നിങ്ങൾക്ക് സ്ട്രിങുകൾ അല്ലെങ്കിൽ പൂർണ്ണസംഖ്യകൾ സജ്ജീകരണ പട്ടികയിലേക്ക് സംരക്ഷിക്കാനും എളുപ്പത്തിൽ വീണ്ടെടുക്കാനും കഴിയും. അവരുടെ ഉയർന്ന സ്കോറുകൾ സംരക്ഷിക്കുന്നതിനായി ഒരു കളിക്കാരന്റെ പേര് സംരക്ഷിക്കുന്നതിൽ നിന്ന് ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.

കൊറോണ SDK: ഗ്രാഫിക്സ് ലേയർ ചെയ്യൽ, ഗ്രാഫിക്സ് നീക്കുക, ഗ്രാഫിക്സ് ഫ്രണ്ട് ഫ്രൈ ചെയ്യുക