कोरोना SDK मा गेम डेटा लोड र सहेजें कसरि गर्नुहोस

गेम डेटा र सेटिङ्हरू भण्डारण गर्न SQLite कसरी प्रयोग गर्ने

एक चीज लगभग हरेक एप र गेममा सामान्य छ भण्डारण र डेटा पुनःप्राप्त गर्न आवश्यक छ। यहां सम्म कि सबै भन्दा सरल खेल एप संस्करण नम्बर को सहेजने को लागि SQLite को उपयोग गर्न सक्छ, जो उन्नयन को प्रदर्शन गर्दा संगतता को सुनिश्चित गर्न को लागी उपयोग गर्न सकिन्छ, या सरल सेटिंग्स जस्तै गेम को आवाज चालू या बंद को रूप मा उपयोग गर्न को लागी उपयोग गर्न सकिन्छ।

यदि तपाईंले डेटाबेसको साथ धेरै काम कहिल्यै गर्नुभएन वा कोरोना एसडीकेमा डाटाबेस विशेषताहरू प्रयोग गर्नुभएन, चिन्ता नगर्नुहोस्। यो वास्तवमा एक अपेक्षाकृत सीधा प्रक्रिया हो LUA को शक्ति र SQLite डाटाबेस ईन्जिनियरिङ् कोरोना SDK मा प्रयोग को लागी धन्यवाद। यो ट्यूटोरियल एक सेटिङ तालिका सिर्जना गर्ने प्रक्रिया र यस भण्डारण र जानकारी प्राप्त गरेर यो पुन: प्राप्ति गर्ने प्रक्रियामा हिडनेछ। IPad अनुप्रयोगहरू विकास कसरी गर्ने?

साथै ध्यान राख्नुहोस् कि यो प्रविधि प्रयोगकर्ता आधारित सेटिंग्स भण्डार गर्नु भन्दा अगाडी बढ्न सक्छ। उदाहरणको लागि, यदि तपाईसँग खेल छ भने फरक खेल मोडहरू जस्तै "कथा" मोड र "आर्केड" मोड प्रयोग गरेर प्ले गर्न सकिन्छ। यो सेटिङ् तालिका हालको मोड भण्डारण गर्न प्रयोग गर्न सकिन्छ। वा डाटाको कुनै अर्को टुक्रा जुन तपाइँ निरन्तर रहन चाहानुहुन्छ भने प्रयोगकर्ताले खेलबाट बाहिर निस्कन र यसलाई रिन्न्च गर्दछ।

चरण वन: डाटाबेस सुरू गर्न र सेटिङ तालिका बनाउँदै

हामीले गर्नु पर्ने पहिलो कुरा SQLite लाइब्रेरीको घोषणा गर्दछ र हाम्रो एपलाई बताउनुहोस् जहाँ डाटाबेस फाईल फेला पार्न सकिन्छ। यो कोड राख्नको लागि उत्तम स्थान मुख्य.lua फाईलको शीर्षमा अन्य आवश्यक बयानको साथमा छ। डेटाबेस फाइल सिर्जना गरिनेछ यदि कुनै पनि भेटिएन, र हामी यसलाई दस्तावेज फोल्डरमा भण्डार गर्नेछौं ताकि हामी यसलाई पढ्न र यसलाई लेख्न सक्दछौं।

"sqlite3" को आवश्यकता
स्थानीय डेटा_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3. खोल्नुहोस् (data_path);

याद गर्नुहोस् कसरी "db" चर स्थानीयकृत छैन। हामीले यो सुनिश्चित गर्न सकेका छौं कि हामी हाम्रो परियोजनामा ​​डाटाबेसमा पहुँच गर्न सक्दछौँ। तपाईं पनि सबै डेटाबेस प्रकार्यहरूको लागि एक .lua फाइल सिर्जना गर्न सक्नुहुन्छ र डाटाबेसलाई त्यो फाइलमा स्थानीय राख्न सक्नुहुन्छ।

अर्को, हामीले डाटाबेस तालिका सिर्जना गर्न आवश्यक छ जुन हाम्रो सेटिङहरू भण्डारण गर्दछ:

स्थानीय sql = "तालिका सिर्जना गर्नुहोस् यदि मैले पूर्वनिर्धारित सेटिङहरू (नाम, मान);"
db: exec (sql);

यो विवरणले हाम्रो सेटिङ तालिका बनाउँछ। यो एप भार हरेक पटक चलाउन ठीक छ किनभने तालिका पहिल्यै अवस्थित छ, यो कथन केहि पनि गर्नेछैन। तपाइँ यो कथन दायाँ भित्र राख्न सक्नुहुन्छ जहाँ हामीले डाटाबेस वा प्रकार्यलाई चलाउछौँ जुन तपाईंको एप चलाउन सेट अप गर्दछ। मुख्य आवश्यकता (1) सबै बखत एप सुरू भएको ती कथनहरू कार्यान्वयन गर्न हो (2) कुनै पनि कल गर्नु भन्दा सेटिङहरू लोड गर्न वा बचत गर्न यसलाई कार्यान्वयन गर्न।

चरण दुई: डाटाबेसमा सेटिङ् सेटिङहरू

प्रकार्य सेटसेट (नाम, मान)
sql = "सेटिङहरू बाट मेटाउनुहोस् WHERE name = '" .. नाम .. "'";
db: exec (sql)

sql = "INSERT INSERT सेटिङहरू (नाम, मान) VALUES ('" ..नाम .. "'," .. मूल्य .. ");";
db: exec (sql)
अन्त

प्रकार्यसेटसेटिङस्ट्रिङ (नाम, मान)
सेटसेट (नाम, "'" मान .. "'");
अन्त

सेटसेटिङ प्रकार्यले कुनै पनि अघिल्लो सेटिङ तालिकामा सुरक्षित गरीयो र हाम्रो नयाँ मूल्य सम्मिलित गर्दछ। यो दुवै पूर्णांक र तारको साथ काम गर्नेछ, तर स्ट्रिङ सुरक्षित गर्न मानको वरिपरी एकल उद्धरणहरू आवश्यक छ, त्यसैले हामीले हाम्रो लागि थप बिट काम गर्न सेटस्टिङ स्ट्रिङ प्रकार्य प्रयोग गर्यौं।

चरण तीन: डाटाबेसबाट सेटिङ्हरू लोड हुँदै

प्रकार्य प्राप्तसेटिङ (नाम)

स्थानीय sql = "चयन गर्नुहोस् * सेटिङहरूबाट जहाँ पनि नाम = '" .. नाम .. "'";
स्थानीय मूल्य = -1;

db मा पंक्ति को लागि: नाउ (sql) गर्न
value = row.value;
अन्त

फिर्ती मान;
अन्त

function getSettingString (नाम)
स्थानीय sql = "चयन गर्नुहोस् * सेटिङहरूबाट जहाँ पनि नाम = '" .. नाम .. "'";
स्थानीय मूल्य = '';

db मा पंक्ति को लागि: नाउ (sql) गर्न
value = row.value;
अन्त

फिर्ती मान;
अन्त

माथिको रूपमा, हामीले दुईवटा संस्करणहरूमा प्रकार्यहरू बिच्छेदन गरेका छौं: एक इन्टिगर्सका लागि र एक तारको लागि। हामीले यो गरेका मुख्य कारण यो हो कि हामी डेटाबेसमा कुनै पनि अवस्थित छ भने हामी निर्दिष्ट मानहरूसँग प्रारम्भ गर्न सक्छौं। GetSetting प्रकार्य एक -1 फिर्ता हुनेछ, जसले हामीलाई थाहा पाउनेछ कि सेटिङ सुरक्षित गरिएको छैन। GetSettingString ले खाली स्ट्रिङ फर्काउँछ।

GetSettingString प्रकार्य पुरा तरिकाले वैकल्पिक छ। यो र सामान्य getSetting प्रकार्य बीचको मात्र भिन्नता फर्काइएको छ यदि डेटाबेसमा केही पाइएन भने।

चरण चार: हाम्रो सेटिङ तालिका प्रयोग गर्दै

अब जुन हामीले कठिन काम गरेका छौं, हामी स्थानीय डेटाबेसमा सजिलै संग सेटिङहरू लोड गर्न र सुरक्षित गर्न सक्छौं। उदाहरणको लागि, हामी निम्न आवाजको साथ आवाजलाई म्युट गर्न सक्छौं:

सेटसेट ('ध्वनि', झूटा);

र हामी आवाज बजाउनको लागि ग्लोबल फंक्शनमा सेटिङ प्रयोग गर्न सक्दछौं:

प्रकार्य प्लेउन्डर (ध्वनिआईडी)
यदि (getSetting ('ध्वनि')) त्यसपछि
audio.play (soundID)
अन्त
अन्त

ध्वनि फिर्ता चालू गर्न, हामीले सँधै सँधै आवाज सेटिङ सेट गर्न सक्दछौं:

सेटसेट ('ध्वनि', साँचो);

यी प्रकार्यहरूको बारेमा राम्रो भाग हो तपाइँ सेटिङ्स तालिकामा तार वा पूर्णाङ्कहरू बचत गर्न र तिनीहरूलाई सजिलै पुनः प्राप्त गर्न सक्नुहुनेछ। यसले तपाइँलाई उच्च उच्च स्कोर बचत गर्न एक प्लेयरको नाम बचत गर्नबाट केहि गर्न अनुमति दिन्छ।

कोरोना SDK: कसरी ग्राफिक्स लेजर, ग्राफिक सार्नुहोस् र ग्राफिक्स लाई अगाडि ल्याउनुहोस्