በኮረንዶ SDK ውስጥ የጨዋታ ውሂብ እንዴት መጫን እና ማስቀመጥ እንደሚቻል

የጨዋታ ውሂብ እና ቅንብሮችን ለማከማቸት SQLite ን እንዴት እንደሚጠቀሙ

እያንዳንዱ መተግበሪያ እና ጨዋታ አንድ የጋራ አንድ ነገር ነው መረጃን የማከማቸት እና ሰርስሮ ማውጣት. በጣም ቀለል ያለው ጨዋታ እንኳ ማሻሻልን ሲያከናውን ተኳሃኝነት መኖሩን ለማረጋገጥ, ወይም የጨዋታውን ድምጽ እንደ ማዞር ወይም ማሰናከል ቀላል የሆኑ ቅንብሮችን ለማረጋገጥ የ SQLite ን የመተግበሪያውን ስሪት ቁጥር ለማስቀመጥ ይችላል.

ከዳታ ቤቶች ጋር ብዙ ስራ ያላከናወነዎ ወይም የኮርሶ ዲ ኤን ኤስ ባህሪን በኮርኖ ኤስዲኬ ተጠቅሞ ከሆነ, አይጨነቁ. ለ LUA ኃይል እና በ Corona ኤስዲኬ ውስጥ ጥቅም ላይ የዋለ የ SQLite የመረጃ ቋት ሞገዶች ስላለው በአንጻራዊነት ቀጥተኛ ሂደት ነው. ይህ አጋዥ ስልጠና የቅንጅት ሰንጠረዥ በመፍጠር እና ከሁለቱም መረጃን ማከማቸት እና ሰርስሮ ማውጣት ሂደት ውስጥ ይራመዳል. የ iPad መተግበሪያዎችን እንዴት እንደሚያዘጋጁ.

እንዲሁም ይህ ዘዴ ተጠቃሚ-ተኮር ቅንብሮችን ከማከማቸት በላይ ሊሄድ እንደሚችል ልብ ይበሉ. ለምሳሌ, እንደ "ታሪክ" ሁናቴ እና "የታጠፈ" ሁነታ ያሉ የተለያዩ የጨዋታ ሁኔታዎችን በመጠቀም መጫወት የሚቻል ጨዋታ ካለዎትስ? ይህ የአቀማመጥ ሰንጠረዥ የአሁኑን ሁነታ ለማከማቸት ጥቅም ላይ ሊውል ይችላል. ወይም ሌላ ተጠቃሚው ከጨዋታው ቢወጣም እንኳ ሊቆዩ የሚፈልጉት ሌላ ማንኛውም ውሂብ.

ደረጃ አንድ: የውሂብ ጎታውን ማስጀመር እና የቅንጅቱን ሰንጠረዥ መፍጠር

እኛ ማድረግ ያለብን የመጀመሪያው ነገር የ SQLite ቤተ-ፍርግም ያስታውቃል እና የውሂብ ጎታ ፋይሉን የት እንደሚገኝ ለትግበራችን ይንገሩን. ይሄንን ኮድ ለማስቀመጥ የተሻለው ቦታ በቀጥታ በዋናው የላይኛው በኩል ያለው ፋይል ከሌላው ጋር የቃላት መግለጫዎች ያስፈልጉታል. መረጃ ከሌለ የሚፈሰው የውሂብ ጎታ ፋይል ይፈጠራል, እና እኛ ከእሱ ማንበብ እና መፃፍ እንድንችል በ Documents folder ውስጥ እናስቀምጠዋለን.

"sqlite3" ይፈልጋሉ
local data_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (data_path);

የ "db" ተለዋዋጭ እንዴት አልተተረጎመም. ይህንንም በፕሮጀክቶቻችን ውስጥ በሙሉ የመረጃ ቋቱን መድረስ መቻሉን ማረጋገጥ ነው. ሇሁለም የውሂብ ጎታ (ዲጂታል) ተግባሮች አንድ የተወሰነ የሉሊን ፋይል መፍጠር እና በዛ ፋይል ውስጥ የተመሰረተ የውሂብ ጎታዎችን ማካተት ይችሊለ.

ቀጥሎም የኛን የውሂብ ጎታ ሰንጠረዥ መፍጠር ያስፈልገናል.

local sql = "የማይገለፅባቸው ሁኔታዎች ካሉ (ስም, እሴት) ካልሆነ አዘጋጅ";
db: exec (sql);

ይህ መግለጫ የእኛን የቅንብሮች ሰንጠረዥ ይፈጥራል. መተግበሪያው በሚጫነው እያንዳንዱ ጊዜ እንዲሄድ ማድረግ ችግር የለውም ምክንያቱም ሰንጠረዡ ቀድሞውኑ ካለ, ይህ መግለጫ ምንም ነገር አያደርግም. ይህንን መግለጫ የውሂብ ጎታውን ባስቀመጥንበት ወይም መተግበሪያዎ እንዲሰሩ ባለው ተግባር ውስጥ ማስገባት ይችላሉ. ዋናው ነገር (1) መተግበሪያው በሚጀምርበት ጊዜ ሁሉ እነዚህን ዓረፍተ ነገሮች ለመተግበር እና (2) ማንኛውም ጥሪዎች ወደ ውጫዊ ጥሪዎች ለመጫን ወይም ለማስቀመጥ ከማንኛዎቹ እርምጃዎች በፊት ያስፈጽማል.

ደረጃ ሁለት: ቅንጅቶችን ወደ መረጃ ቋት በማስቀመጥ ላይ

ተግባር setSetting (ስም, ዋጋ)
sql = "ከቅንጥቶች WHERE ስም = '... .. ስም ..' '";
db: exec (sql)

sql = "INSERT INTO ቅንብሮችን (ስም, ዋጋ) VALUES ('.. .. .. ..'," .. .. .. ");";
db: exec (sql)
ጨርስ

ተግባር setSettingString (ስም, ዋጋ)
setSetting (ስም, "" ... .. .. ዋጋ .. "'");
ጨርስ

የ SetSetting ሒደት ማናቸውንም ቀዳሚ ቅንብሮች ወደ ሰንጠረዡ የተቀመጡ እና አዲሱን እሴታችንን ያስገባል. ከሁለቱም ኢንቲጀሮች እና ሕብረቁምፊዎች ጋር ይሰራል, ነገር ግን አንድ ሕብረቁምፊን ማስቀመጥ አንድ እሴት ዙሪያውን ነጠላ ጥቅሶችን ይጠይቃል, ስለዚህ ለኛ ተጨማሪ ተጨማሪ ስራ ለማከናወን የ setSettingString አገልግሎቱን ተጠቅመንበታል.

ደረጃ ሦስት: ቅንጅቶች ከውሂብ ጎታ ላይ በመጫን

function getSetting (name)

local sql = "SELECT * FROM settings WHERE ስም = '... .. name ..' '";
የአካባቢ ዋጋ = -1;

ለደብሉ በ db: nrows (sql) ያድርጉ
እሴት = rw.value;
ጨርስ

እሴት ይመልሱ.
ጨርስ

function getSettingString (name)
local sql = "SELECT * FROM settings WHERE ስም = '... .. name ..' '";
የአካባቢ ዋጋ = '';

ለደብሉ በ db: nrows (sql) ያድርጉ
እሴት = rw.value;
ጨርስ

እሴት ይመልሱ.
ጨርስ

ከላይ እንደጠቀስነው, ተግባራችንን በሁለት ስሪቶች ሰብስበዋል-አንዱ ለግሪቢዮች እና አንድ ለስልቦች. ይህንን የምናደርግበት ዋናው ምክንያት በውሂብ ጎታ ውስጥ ምንም ቅንብር ከሌለ ወደ ተወሰኑ እሴቶችን ልናስጀምርበት ነው. GetSetting ተግባሩ a-1 ይመልሳል, ይህም ቅንጅቱ እንዳልተቀመጠ ያሳውቀናል. GetSettingString አንድ ባዶ ሕብረቁምፊ ይመለሳል.

GetSettingString ተግባር ሙሉ በሙሉ አማራጭ ነው. በእሱ እና በተለመደው የ "getSetting" ተግባር ውስጥ ያለው ልዩነት በ "ዳታቤዝ" ውስጥ ካልገኘ መልሶ የሚመለስ ነው.

ደረጃ አራት: የእኛን ቅንጅቶች ሰንጠረዥ መጠቀም

አሁን ጠንክረን መስራት ስላለብን, በቀላሉ በአካባቢያዊ የውሂብ ጎታ ላይ በቀላሉ ማከማቸት እና ቅንብሮችን ማስቀመጥ እንችላለን. ለምሳሌ, በሚከተለው ቃል ድምጹን ድምጸ ከል ማድረግ እንችላለን:

setSetting ('sound', false);

እንዲሁም ድምጾችን ለመጫወት አለም አቀፋዊ ተግባር ውስጥ ቅንብሩን መጠቀም እንችላለን:

ተግባር playSound (soundID)
if (getSetting ('sound'))
audio.play (soundID)
ጨርስ
ጨርስ

ድምጹን መልሰው ለማብራት, በቀላሉ የድምፅ ቅንብሩን ወደ እውነት አዘጋጅተናል.

setSetting ('sound', true);

ስለነዚህ ተግባራት የሚኖረን አስደሳች ክፍል በቅንጅት ሰንጠረዥ ላይ ሕብረ ቁምፊዎች ወይም ኢንቲጀሮች ማስቀመጥ እና በቀላሉ ማምጣት ይችላሉ. ይህም የተጫዋችውን ስም ከማስቀመጥ እና ከፍተኛ ውጤታቸውን ለማስቀመጥ ይረዳዎታል.

Corona ኤስዲኬ: እንዴት የአሸንፎግራፍ ግራፊክስ ስራዎች, ግራፊክስን እና ግራፊክስን ወደ ፊት ያዙ