Როგორ ჩატვირთვა და შენახვა თამაშის მონაცემები კორონა SDK- ში

როგორ გამოვიყენოთ SQLite მონაცემთა შენახვის მონაცემები და პარამეტრები

ერთი რამ თითქმის ყველა აპლიკაცია და თამაში საერთოა საჭიროა შეინახოს და მივიღოთ მონაცემები. მაშინაც კი, ყველაზე მარტივი თამაში შეგიძლიათ გამოიყენოთ SQLite- ის აპლიკაციის ნომრის შენახვა, რომელიც შეიძლება გამოყენებულ იქნას, რათა მოხდეს განახლებების შესრულებისას თავსებადობა, ან მარტივი პარამეტრები, მაგალითად, თამაშის ხმის ჩართვა ან გამორთვა.

თუ თქვენ არასდროს კეთდება ბევრი მუშაობა მონაცემთა ბაზებთან ან გამოიყენეთ მონაცემთა ბაზის ფუნქციები კორონა SDK- ში , არ ინერვიულოთ. სინამდვილეში შედარებით მარტივია პროცესი წყალობით LUA- ს და SQLite მონაცემთა ბაზის ძრავით, რომელიც გამოყენებულია კორონა SDK- ში. ამ ტერმინოლოგია გაეცნობა პარამეტრების ცხრილის შექმნის პროცესს და მისგან ინფორმაციის შენახვას და მიღებას. როგორ განვითარდეს iPad apps.

ასევე გაითვალისწინეთ, რომ ეს ტექნიკა შეიძლება გასცდეს მომხმარებლის დაფუძნებულ პარამეტრებს. მაგალითად, თუ თქვენ გაქვთ თამაში, რომელიც შეიძლება ითამაშა სხვადასხვა თამაშის რეჟიმებით, როგორიცაა "ამბავი" რეჟიმი და "არკადული" რეჟიმი. ამ პარამეტრების ცხრილი შეიძლება გამოყენებულ იქნას მიმდინარე რეჟიმში შესანახად. ან ნებისმიერი სხვა მონაცემი, რომელიც გსურთ დარჩეს დაჟინებული მაშინაც კი, თუ მომხმარებელი დატოვებს თამაშიდან და გადაახსენებს მას.

ნაბიჯი 1: მონაცემთა ბაზის ინიციალიზაცია და პარამეტრების ცხრილის შექმნა

პირველი, რაც ჩვენ უნდა გავაკეთოთ, არის გამოცხადებული SQLite ბიბლიოთეკა და ვუთხრა ჩვენს აპლიკაციას, სადაც უნდა იპოვოთ მონაცემთა ბაზის ფაილი. საუკეთესო ადგილია ამ კოდის ჩასმის უფლება main.lua- ს ზედა მარჯვენა მხარეს, ხოლო მეორე მოითხოვს განცხადებებს. შეიქმნება მონაცემთა ბაზის ფაილი, თუ არცერთი არ არის ნაპოვნი და ჩვენ შეინახავთ მას დოკუმენტების საქაღალდეში, რომლითაც შეგვიძლია წაიკითხოთ და დავწეროთ იგი.

მოითხოვს "sqlite3"
ადგილობრივი data_path = system.pathForFile ("data.db", system.DocumentsDirectory);
db = sqlite3.open (data_path);

გაითვალისწინეთ, თუ როგორ "db" ცვლადი არ არის ლოკალიზებული. ჩვენ გავაკეთეთ იმისათვის, რომ დარწმუნდეთ, რომ ჩვენს პროექტში მონაცემთა ბაზაში შესვლა შეგვიძლია. თქვენ ასევე შეგიძლიათ შექმნათ კონკრეტული. Lua ფაილი ყველა მონაცემთა ბაზის ფუნქციები და შეინახოს მონაცემთა ბაზის ლოკალიზებული რომ ფაილი.

შემდეგი, ჩვენ უნდა შევქმნათ მონაცემთა ბაზის მაგიდა, რომელიც შეინარჩუნებს ჩვენს პარამეტრებს:

ლოკალური sql = "შექმნა ცხრილი თუ არ არსებობს პარამეტრები (სახელი, მნიშვნელობა);"
დ.ბ: შესრულება (კვ);

ეს განცხადება ჩვენს პარამეტრებს ქმნის. ეს okay აწარმოებს მას ყოველ ჯერზე ატვირთვა, რადგან თუ მაგიდა უკვე არსებობს, ეს განცხადება არ გააკეთებს არაფერი. თქვენ შეგიძლიათ ამ განცხადების გაკეთების უფლება, სადაც ჩვენ გამოვაცხადეთ მონაცემთა ბაზა ან ფუნქცია, რომელიც ქმნის თქვენს აპლიკაციას. ძირითადი მოთხოვნაა (1) ამ განცხადების შესრულებისას შესრულებული აპლიკაციების შესრულება და (2) შეასრულოს იგი ნებისმიერ ზარებზე, რათა ჩატვირთოს ან შეინახოს პარამეტრები.

ნაბიჯი 2: შენახვის პარამეტრების მონაცემთა ბაზაში

ფუნქციის setSetting (სახელი, ღირებულება)
sql = "წაშლა პარამეტრებიდან where name = '" .. სახელი .. "";
db: exec (sql)

sql = "INSERT INTO პარამეტრები (სახელი, მნიშვნელობა) ღირებულებები ('' .. .. .. ''," .. ღირებულება .. ");";
db: exec (sql)
დასასრული

ფუნქცია setSettingString (სახელი, მნიშვნელობა)
setSetting (სახელი, "" .. მნიშვნელობა .. "");
დასასრული

SetSetting ფუნქცია წაშლის მაგიდაზე შენახული ნებისმიერ წინა პარამეტრს და ჩვენს ახალ ღირებულებას ჩანართ. იგი იმუშავებს ორივე რიცხვებით და სიმებიანი, მაგრამ გადარჩენის სიმებიანი მოითხოვს ერთჯერადი შეთავაზებები გარშემო ღირებულება, ამიტომ ჩვენ გამოყენებული setSettingString ფუნქცია გავაკეთოთ, რომ ზედმეტი ცოტა მუშაობა ჩვენთვის.

ნაბიჯი სამი: იტვირთება პარამეტრების მონაცემთა ბაზაში

ფუნქცია getetting (სახელი)

ადგილობრივი sql = "SELECT * FROM პარამეტრები, სადაც სახელი = '" .. სახელი .. "";
ადგილობრივი ღირებულება = -1;

row in db: nrows (sql) გავაკეთოთ
ღირებულება = row.value;
დასასრული

დაბრუნების ღირებულება;
დასასრული

ფუნქცია getSettingString (სახელი)
ადგილობრივი sql = "SELECT * FROM პარამეტრები, სადაც სახელი = '" .. სახელი .. "";
ადგილობრივი ღირებულება = '';

row in db: nrows (sql) გავაკეთოთ
ღირებულება = row.value;
დასასრული

დაბრუნების ღირებულება;
დასასრული

როგორც ზემოთ აღვნიშნეთ, ფუნქციებს ორ ვერსიად დავუკრათ: ერთი რიცხვი და ერთი სიმები. ძირითადი მიზეზი, რაც ჩვენ გავაკეთეთ, ასე რომ, ჩვენ შეგვიძლია ინიცირება მათ კონკრეტულ ღირებულებებს თუ პარამეტრი არსებობს მონაცემთა ბაზაში. GetSetting ფუნქცია დაბრუნდება -1, რომელიც მოგვცემს საშუალებას, რომ პარამეტრი არ არის შენახული. GetSettingString დაბრუნდება ცარიელი სტრიქონით.

GetSettingString ფუნქცია სრულიად სურვილისამებრ. ერთადერთი განსხვავება მას და ნორმალური getSetting ფუნქცია რა დაბრუნდა თუ არაფერი გვხვდება მონაცემთა ბაზაში.

ნაბიჯი ოთხი: გამოყენებით ჩვენი პარამეტრების მაგიდა

ახლა, რომ ჩვენ გვაქვს მძიმე სამუშაო, ჩვენ შეგვიძლია ადვილად ჩატვირთვა და შეინახოთ პარამეტრების ლოკალიზებული მონაცემთა ბაზაში. მაგალითად, შეგვიძლია გამოვიყენოთ ხმა შემდეგი განცხადებით:

setSetting ('ხმის', ყალბი);

და ჩვენ შეგვიძლია გამოვიყენოთ პარამეტრი გლობალური ფუნქცია სათამაშო ხმები:

ფუნქცია playSound (soundID)
თუ (მისაღებად ("ხმის"))
audio.play (soundID)
დასასრული
დასასრული

ხმის უკანა მხარეს რომ დავუბრუნდეთ, უბრალოდ,

setSetting ('ხმის', ჭეშმარიტი);

ლამაზი ფუნქცია ამ ფუნქციების შესახებ შეგიძლიათ შეინახოთ სტრიქონები ან რიცხვები პარამეტრების მაგიდაზე და ადვილად მიიღოთ ისინი. ეს საშუალებას გაძლევთ გააკეთოთ არაფერი შეცვალოთ მოთამაშის სახელი, რათა გადაარჩინოთ მაღალი ქულა.

Corona SDK: როგორ Layer გრაფიკა, გადატანა გრაფიკა და მოუტანს გრაფიკა წინა