लोड करणे आणि कोनोना SDK मधील गेम डेटा कसे जतन करावे

खेळ डेटा आणि सेटिंग्ज साठवण्यासाठी SQLite कसे वापरावे

एक गोष्ट जवळजवळ प्रत्येक अॅप आणि गेममध्ये समानता आहे कारण डेटा साठवण्याची आणि पुनर्प्राप्त करण्याची आवश्यकता आहे. अगदी सर्वात सोप्या गेम, ऍप वर्जन नंबर जतन करण्यासाठी SQLite चा वापर करु शकतो, ज्याचा वापर उन्नतीकरण करताना सुसंगततेसाठी केला जाऊ शकतो किंवा गेमची आवाज चालू किंवा बंद करण्यासारख्या साध्या सेटिंग्ज

आपण कोर्ना एसडीके मध्ये डेटाबेस वैशिष्ट्यांसह खूप कार्य केले नाही किंवा डेटाबेस वैशिष्ट्यांचा वापर केला नसल्यास काळजी करू नका. हे प्रत्यक्षात तुलनेने सोपे प्रक्रिया आहे LUA आणि कोरोना एसडीके मध्ये वापरलेले SQLite डेटाबेस इंजिनच्या सामर्थ्याचा धन्यवाद. हे ट्यूटोरियल सेटिंग्ज टेबल तयार करण्याच्या प्रक्रियेत चालले जाईल आणि त्यातून माहिती संचयित करणे आणि पुनर्प्राप्त करणे या दोन्ही गोष्टींचा समावेश असेल. कसे iPad अनुप्रयोग विकसित करण्यासाठी

हे देखील लक्षात ठेवा की हे तंत्र वापरकर्ता-आधारित सेटिंग्ज संचयित करण्याच्या बाहेर जाऊ शकते. उदाहरणार्थ, आपल्याकडे "गेम" मोड आणि "आर्केड" मोड यासारख्या भिन्न गेम रीती वापरून गेम खेळला जाऊ शकतो तर काय? ही सेटिंग्ज सारणी वर्तमान मोडमध्ये साठवण्यासाठी वापरली जाऊ शकते. किंवा डेटाचा इतर कोणताही भाग जो आपण गेममधून बाहेर पडतो आणि तो पुन्हा लाँच करतो तरीही ते सक्तीने रहायचे आहे.

पायरी एक: डेटाबेस सुरू करणे आणि सेटिंग्ज सारणी तयार करणे

पहिली गोष्ट जी आम्हाला करायची आहे ते SQLite लायब्ररी घोषित करतात आणि डेटाबेसला कुठे शोधावे हे आमच्या अॅप्लिकेशन सांगतात. हा कोड ठेवण्यासाठी सर्वोत्तम स्थान हे मुख्य.लाइआ फाइलच्या शीर्षस्थानी आहे जे इतर आवश्यक स्टेटमेन्टसह आहे. काहीही सापडले नाही तर डेटाबेस फाईल बनविली जाईल, आणि आम्ही त्याला डॉक्युमेंटस फोल्डरमध्ये संचयित करू जेणेकरुन आपण त्यातून वाचू आणि त्यावर लिहू.

"sqlite3" आवश्यक आहे
स्थानिक data_path = system.pathForFile ("data.db", system.Documents डायरेक्टरी);
db = sqlite3.open (data_path);

लक्ष द्या "db" व्हेरिएबल कसे स्थानिकीकृत नाही. आम्ही आमच्या प्रकल्प संपूर्ण डेटाबेस प्रवेश करू शकता हे सुनिश्चित करण्यासाठी हे केले. आपण सर्व डेटाबेस फंक्शन्ससाठी विशिष्ट. Lua फाईल तयार करु शकता आणि त्या फाईलवर डेटाबेसचे स्थानिकीकरण करू शकता.

नंतर, डेटाबेस सेव्ह करणे आवश्यक आहे जे आपली सेट्टिंग्स संचित करेल.

स्थानिक sql = "सेटिंग्ज नसल्यास टेबल तयार करा (नाव, मूल्य);"
db: exec (sql);

हे स्टेटमेंट आमच्या सेट्टिंग टेबल तयार करते. प्रत्येकवेळी हा अनुप्रयोग लोड झाल्यास चालवणे ठीक आहे कारण टेबल आधीपासून विद्यमान असल्यास, हे स्टेटमेंट काहीही करणार नाही. आपण हे विधान ज्याच्या खाली आम्ही डेटाबेस घोषित केला आहे त्यानुसार करू शकता किंवा कार्यरत करण्याकरिता आपल्या अॅपला सेट करते. मुख्य गरज म्हणजे (1) त्या निवेदनास प्रत्येक वेळी अनुप्रयोग लाँच करण्यासाठी आणि (2) सेटिंग्ज लोड करण्याकरिता किंवा सेव्ह करण्यासाठी कोणत्याही कॉल करण्यापूर्वी ते कार्यान्वित करणे.

पायरी दोन: डेटाबेसमध्ये सेटिंग्ज जतन करणे

फंक्शन सेटसटिंग (नाव, मूल्य)
sql = "सेटींग मधून नावे हटवा = '" .. नाव .. "' ';
db: exec (sql)

sql = "सेटिंग्जमध्ये अंतर्भूत करा (नाव, मूल्य) VALUES ('" ..name .. "," .. मूल्य .. ");";
db: exec (sql)
शेवट

फंक्शन सेटसेटिंग स्ट्रिंग (नाव, मूल्य)
setSetting (नाव, "'" .. .. मूल्य ""' ");
शेवट

SetSetting फंक्शन टेबलमध्ये सेव्ह केलेली कोणतीही मागील सेटिंग्ज डिलिट करते आणि आमचे नवीन मूल्य समाविष्ट करते. तो पूर्णांक आणि स्ट्रिंग दोन्हीसह कार्य करेल, परंतु स्ट्रिंग जतन करणेसाठी सिंगल कोट्सचे मूल्य आवश्यक आहे, म्हणून आम्ही setSettingString फंक्शनचा वापर आमच्यासाठी त्या अतिरिक्त कार्य करण्याकरिता केला आहे.

पायरी तीन: डेटाबेसवरून सेटिंग्ज लोड करणे

फंक्शन getSetting (नाव)

स्थानिक एसक्यूएल = "सेलेक्ट * सेन्टर ज्याचे नाव = '" .. नाव .. "' ';
स्थानिक मूल्य = -1;

db मध्ये पंक्तीसाठी: nrows (sql) करा
मूल्य = row.value;
शेवट

परतावा मूल्य;
शेवट

फंक्शन getSettingString (नाव)
स्थानिक एसक्यूएल = "सेलेक्ट * सेन्टर ज्याचे नाव = '" .. नाव .. "' ';
स्थानिक मूल्य = '';

db मध्ये पंक्तीसाठी: nrows (sql) करा
मूल्य = row.value;
शेवट

परतावा मूल्य;
शेवट

वरीलप्रमाणे, आपण फंक्शन्स दोन आवृत्त्यांमध्ये मोडले आहेत: एक पूर्णांकांसाठी आणि एक स्ट्रिंगसाठी. डेटाबेसमध्ये काही सेटिंग नसल्यास मुख्य व्हॅल्यूज वापरून आपण त्यांचे प्राथमिक व्हॅल्यू देणे शक्य आहे. GetSetting फंक्शन -1 देईल, जे आम्हाला कळवेल की सेटिंग जतन केली गेली नाही. GetSettingString रिक्त स्ट्रींग परत करेल.

GetSettingString फंक्शन पूर्णपणे वैकल्पिक आहे. डाटाबेसमध्ये काही सापडत नाही तर तो मिळणारा आणि सामान्य getSetting फंक्शनमध्ये फरक एवढाच फरक आहे.

पायरी चार: आमच्या सेटिंग्ज टेबलचा वापर करणे

आता आम्ही कठोर परिश्रम केले आहे, आम्ही सेटिंग्ज लोड आणि लोकॅलॅट केलेल्या डेटाबेसमध्ये सेव्ह करू शकतो. उदाहरणार्थ, आम्ही खालील विधानासह आवाज निःशब्द करू शकतो:

setSetting ('आवाज', चूक);

आणि ध्वनी प्ले करण्यासाठी आम्ही जागतिक फंक्शनमध्ये सेटिंग वापरु शकतो:

फंक्शन प्लेसउंड (ध्वनिआयडी)
तर (getSetting ('आवाज')) नंतर
audio.play (ध्वनिआयडी)
शेवट
शेवट

ध्वनी परत चालू करण्यासाठी, आम्ही फक्त ध्वनी सेटिंग खरे वर सेट केले आहे:

setSetting ('आवाज', खरे);

या फंक्शन्सबद्दल छान भाग आपण सेटिंग्ज टेबलमध्ये स्ट्रिंग्ज किंवा पूर्णांक जतन करु शकता आणि त्यांना सहजपणे पुनर्प्राप्त करु शकता. हे आपल्या उच्च गुण जतन करण्यासाठी प्लेअरचे नाव जतन करण्यापासून काहीही करण्याची अनुमती देते.

कोरोना एसडीके: परत ग्राफिक कसे, कसे हलवा ग्राफिक्स आणि समोर ग्राफिक्स आणा