దాదాపు ప్రతి అప్లికేషన్ మరియు ఆట సాధారణంగా ఉంది డేటా నిల్వ మరియు తిరిగి అవసరం. అనువర్తనం వెర్షన్ సంఖ్యను భద్రపరచడానికి SQLite ను కూడా చాలా సరళమైన ఆట ఉపయోగించుకుంటుంది, ఇది నవీకరణలు జరుపుతున్నప్పుడు అనుకూలతను నిర్ధారించడానికి ఉపయోగించబడుతుంది, లేదా ఆట యొక్క ధ్వని ఆన్ లేదా ఆఫ్ చేయడం వంటి సాధారణ సెట్టింగులు.
మీరు డేటాబేస్తో ఎక్కువ పనిని చేయకపోయినా లేదా కరోనా SDK లో డేటాబేస్ ఫీచర్లను ఉపయోగించకుంటే, చింతించకండి. ఇది నిజానికి LUGO యొక్క శక్తి మరియు కరోనా SDK ఉపయోగించిన SQLite డేటాబేస్ ఇంజిన్కు సాపేక్షంగా నేరుగా ప్రక్రియ కృతజ్ఞతలు. ఈ ట్యుటోరియల్ ఒక సెట్టింగుల పట్టికను సృష్టించే ప్రక్రియ ద్వారా నడుస్తుంది మరియు దాని నుండి సమాచారాన్ని నిల్వ చేయడం మరియు తిరిగి పొందడం రెండింటి ద్వారా జరుగుతుంది.
ఈ టెక్నిక్ యూజర్ ఆధారిత సెట్టింగులను నిల్వ మించి ఉండవచ్చని గుర్తుంచుకోండి. ఉదాహరణకు, మీరు "కథ" మోడ్ మరియు "ఆర్కేడ్" మోడ్ వంటి విభిన్న గేమ్ మోడ్లను ఉపయోగించి ఆడగల ఆట ఉన్నట్లయితే. ప్రస్తుత మోడ్ను నిల్వ చేయడానికి ఈ సెట్టింగుల పట్టిక ఉపయోగించబడుతుంది. వినియోగదారు ఆట నుండి నిష్క్రమించి, తిరిగి లాగినప్పుడు కూడా మీరు నిరంతరంగా ఉండటానికి కావలసిన డేటా ఏ ఇతర భాగం.
డేటాబేస్ను ప్రారంభించడం మరియు సెట్టింగులను పట్టిక సృష్టించడం.
మేము చేయవలసిన మొదటి విషయం SQLite లైబ్రరీని డిక్లేర్ చేసి డేటాబేస్ ఫైల్ను కనుగొనడానికి మా అనువర్తనాన్ని తెలియజేస్తుంది. ఈ కోడ్ను ఉంచడానికి ఉత్తమమైన ప్రదేశం main.lua ఎగువ భాగంలో ఇతర అవసరమైన ప్రకటనలతో పాటు ఉంది. ఎవరూ దొరకలేదు ఉంటే డేటాబేస్ ఫైల్ సృష్టించబడుతుంది, మరియు మేము అది పత్రాలు ఫోల్డర్ లో నిల్వ చేస్తాము తద్వారా మేము దాని నుండి చదివి అది వ్రాయడానికి.
"sqlite3" స్థానిక data_path = system.pathForFile ("data.db", system.DocumentsDirectory); db = sqlite3.open (data_path);
"Db" వేరియబుల్ ఎలా స్థానీకరించబడిందో గమనించండి. మేము మా ప్రాజెక్ట్ అంతటా డేటాబేస్ యాక్సెస్ చేయవచ్చు నిర్ధారించడానికి ఈ పూర్తి చేసిన. మీరు అన్ని డేటాబేస్ విధులు కోసం ఒక ప్రత్యేకమైన .lua ఫైల్ను సృష్టించవచ్చు మరియు డేటాబేస్ను ఆ ఫైల్కు పరిమితం చేయవచ్చు.
తరువాత, మన సెట్టింగులను నిల్వచేసే డేటాబేస్ పట్టికను సృష్టించాలి:
స్థానిక sql = "సెట్టింగులను (పేరు, విలువ) కలిగి ఉండకపోతే TABLE సృష్టించు;" db: exec (sql);
ఈ ప్రకటన మా సెట్టింగుల పట్టికను సృష్టిస్తుంది. ఇది ప్రతిసారీ అనువర్తనం లోడ్ అవుతుందనేది సరైందే ఎందుకంటే పట్టిక ఇప్పటికే ఉన్నట్లయితే, ఈ ప్రకటన ఏదైనా చేయదు. మీరు ఈ ప్రకటనను డేటాబేస్ లేదా రన్ చేయడానికి మీ అనువర్తనాన్ని అమర్చిన ఫంక్షన్లో ప్రకటించిన చోట క్రింద ఉంచవచ్చు. అనువర్తనం ప్రారంభించిన ప్రతిసారీ ఆ ప్రకటనలను అమలు చేయడానికి (1) ప్రధాన అవసరం (2) అమర్పులను లోడ్ చేయడానికి లేదా సేవ్ చేయడానికి ఏదైనా కాల్స్ ముందు అమలు చేయండి.
డేటాబేస్కు సెట్టింగులను సేవ్ చేస్తోంది.
ఫంక్షన్ సెట్ సెట్టింగు (పేరు, విలువ) sql = "సెట్టింగులను తొలగించండి పేరు పేరు = '" పేరు .. ""; db: exec (sql) sql = "INSERT INTO సెట్టింగులు (పేరు, విలువ) విలువలు ('.. ..పే .. ..', '.. విలువ ..');"; db: exec (sql) ముగింపు
ఫంక్షన్ సెట్సెటింగ్ స్ట్రింగ్ (పేరు, విలువ) సెట్ సెట్టింగు (పేరు, ".." విలువ .. "'"); ముగింపు
సెట్ ఫంక్షన్ పట్టిక సేవ్ ఏ మునుపటి సెట్టింగులను తొలగిస్తుంది మరియు మా కొత్త విలువ ఇన్సర్ట్. ఇది పూర్ణాంకాల మరియు తీగలను రెండింటితో పని చేస్తాయి, కానీ స్ట్రింగ్ను సేవ్ చేస్తే, విలువ చుట్టూ సింగిల్ కోట్స్ అవసరం, కనుక మనం పని కోసం అదనపు బిట్ చేయడానికి సెట్సెట్టింగ్ ఫంక్షన్ని ఉపయోగిస్తాము.
డేటాబేస్ నుండి సెట్టింగ్లను లోడ్ చేస్తోంది.
ఫంక్షన్ getSetting (పేరు)
స్థానిక sql = "సెట్లు * FROM సెట్టింగులు WHERE పేరు = '" .. పేరు .. "'; స్థానిక విలువ = -1;
db లో వరుస కోసం: nrows (sql) విలువ = row.value చేయండి; ముగింపు
తిరిగి విలువ;
ఫంక్షన్ getSettingString (పేరు) స్థానిక sql = "సెట్టింగ్లు FROM సెట్టింగులు WHERE పేరు = '" .. పేరు .. "'; స్థానిక విలువ = '';
db లో వరుస కోసం: nrows (sql) విలువ = row.value చేయండి; ముగింపు
తిరిగి విలువ;
పైన చెప్పిన విధంగా, మేము విధులను రెండు వెర్షన్లుగా విచ్ఛిన్నం చేసాము: పూర్ణాంకాలకు ఒకటి మరియు తీగలకు ఒకటి. మనము చేసిన ఈ ప్రధాన కారణం డేటాబేస్ లో ఎటువంటి అమరిక లేనట్లయితే వాటిని మనము నిర్దిష్ట విలువలతో ప్రారంభించవచ్చు. GetSetting ఫంక్షన్ -1 ను తిరిగి ఇస్తుంది, ఇది సెట్టింగు సేవ్ చేయబడలేదని మాకు తెలియజేస్తుంది. GetSettingString ఖాళీ స్ట్రింగ్ను తిరిగి ఇస్తుంది.
GetSettingString ఫంక్షన్ పూర్తిగా ఐచ్ఛికం. ఇది మరియు సాధారణ getSetting ఫంక్షన్ మధ్య తేడా మాత్రమే డేటాబేస్ లో ఏమీ కనుగొనబడలేదు తిరిగి ఉంది.
మా సెట్టింగుల పట్టికను ఉపయోగించి.
ఇప్పుడు మేము కృషి చేసాము, మనము ఒక స్థానికీకరించిన డాటాబేస్కు సులభంగా లోడ్ చేసి, సెట్టింగులను సేవ్ చేయవచ్చు. ఉదాహరణకు, మేము క్రింది ప్రకటనతో ధ్వనిని మ్యూట్ చేయగలము:
setSetting ( 'ధ్వని', తప్పుడు);
మరియు శబ్దాలు వినిపించే ప్రపంచ కార్యాచరణలో మేము సెట్టింగ్ను ఉపయోగించుకోగలము:
ఫంక్షన్ playSound (soundID) ఉంటే (getSetting ('ధ్వని')) అప్పుడు audio.play (soundID) endend
తిరిగి ధ్వనిని మార్చడానికి, మేము ధ్వని సెట్టింగును నిజంగా సెట్ చేసాము:
setSetting ( 'ధ్వని', నిజమైన);
ఈ విధులు గురించి nice భాగం మీరు తీగలు లేదా పూర్ణాంకాల సేవ్ చేయవచ్చు సెట్టింగులను పట్టిక మరియు వాటిని సులభంగా తిరిగి. ఇది వారి అధిక స్కోర్ను సేవ్ చేయడానికి ఆటగాడి పేరును సేవ్ చేయడంలో మీకు అనుమతిస్తుంది.













