এক জিনিস প্রায় প্রতিটি অ্যাপ্লিকেশন এবং খেলা সাধারণ তথ্য সঞ্চয় এবং পুনরুদ্ধারের প্রয়োজন। এমনকি অ্যাপ্লিকেশন সংস্করণ নম্বরটি সংরক্ষণ করার জন্য এমনকি সবচেয়ে সহজ খেলাটি SQLite ব্যবহার করতে পারে, যা আপগ্রেডগুলি সম্পাদন করার সময় সামঞ্জস্য নিশ্চিত করতে বা গেমের শব্দটি চালু বা বন্ধ করার মতো সহজ সেটিংস ব্যবহার করতে ব্যবহার করা যেতে পারে।
আপনি ডেটাবেসগুলির সাথে অনেক বেশি কাজ না করে থাকেন অথবা কোরানা এসডিকে ডাটাবেস বৈশিষ্ট্যগুলি ব্যবহার না করলে, চিন্তা করবেন না। এটি আসলে একটি অপেক্ষাকৃত সহজবোধ্য প্রক্রিয়া কারুোনা এসডিকে ব্যবহার করা লুনা এবং SQLite ডাটাবেস ইঞ্জিনের ক্ষমতার জন্য ধন্যবাদ। এই টিউটোরিয়ালটি সেটিংস টেবিল তৈরির প্রক্রিয়া এবং এটির তথ্য সংরক্ষণ এবং পুনরুদ্ধারের প্রক্রিয়া চলবে।
মনে রাখবেন যে এই কৌশল ব্যবহারকারী-ভিত্তিক সেটিংস সংরক্ষণের বাইরে যেতে পারে। উদাহরণস্বরূপ, যদি আপনার কোন খেলা থাকে যা "খেলা" মোড এবং "আর্কেড" মোডের মতো বিভিন্ন গেম মোড ব্যবহার করে প্লে করা যায়। এই সেটিংস টেবিল বর্তমান মোড সংরক্ষণ করতে ব্যবহার করা যেতে পারে। ব্যবহারকারীর খেলাটি থেকে বাদ দেওয়া এবং পুনরায় লোকেশন করার পরেও আপনি যে কোনও ডেটা যা স্থির রাখতে চান।
ডাটাবেস আরম্ভ এবং সেটিংস টেবিল তৈরি।
আমাদের যা করতে হবে তা হল SQLite লাইব্রেরীটি ঘোষণা করা এবং আমাদের অ্যাপ্লিকেশনটিকে ডেটাবেস ফাইলটি কোথায় পাওয়া যায় তা বলুন। এই কোডটি স্থাপন করার সেরা জায়গাটি মূল.লুয়া ফাইলের শীর্ষে ডান পাশাপাশি বিবৃতির প্রয়োজন। ডাটাবেস ফাইল তৈরি করা হবে যদি কেউ পাওয়া যায় না, এবং আমরা এটি ডকুমেন্টস ফোল্ডারে সংরক্ষণ করব যাতে আমরা এটিকে পড়তে এবং এটিতে লিখতে পারি।
প্রয়োজন "sqlite3" স্থানীয় data_path = system.pathForFile ("data.db", সিস্টেম। ডকুমেন্টস ডিরেক্টরি); db = sqlite3.open (data_path);
নোটিশ কিভাবে "ডিবি" পরিবর্তনশীল স্থানীয় হয় না। আমরা আমাদের প্রকল্প জুড়ে ডাটাবেস অ্যাক্সেস করতে পারেন তা নিশ্চিত করার জন্য এটি করেছি। আপনি সমস্ত ডাটাবেস ফাংশনগুলির জন্য একটি নির্দিষ্ট। Lua ফাইল তৈরি করতে এবং সেই ফাইলটিতে স্থানীয়ভাবে ডেটাবেস রাখতে পারেন।
পরবর্তীতে, আমাদের ডাটাবেস টেবিল তৈরি করতে হবে যা আমাদের সেটিংস সংরক্ষণ করবে:
স্থানীয় sql = "এক্সটেনশন সেটিংস (নাম, মান) না থাকলে টেবিল তৈরি করুন;" ডিবি: exec (sql);
এই বিবৃতি আমাদের সেটিংস টেবিল তৈরি করে। অ্যাপ্লিকেশনটি লোড হওয়ার সময় এটি চালানোর জন্য ঠিক আছে কারণ যদি টেবিলটি ইতিমধ্যে বিদ্যমান থাকে তবে এই বিবৃতিটি কিছু করবে না। আপনি ডেটাবেস ঘোষণা করেছেন এমন ফাংশন বা আপনার অ্যাপ্লিকেশানটি চালানোর জন্য সেট আপ করার অধীনে আপনি এই বিবৃতিটি ঠিক করতে পারেন। প্রতিটি সময় অ্যাপ্লিকেশনটি চালু হওয়ার সময় এই বিবৃতিগুলি চালানোর জন্য (1) মূল প্রয়োজন এবং (2) সেটিংস লোড বা সংরক্ষণ করার জন্য কোনও কল করার আগে এটি কার্যকর করুন।
ডাটাবেস সংরক্ষণ সেটিংস।
ফাংশন সেট সেটিং (নাম, মান) sql = "সেটিংস থেকে মুছে দিন যেখানে নাম = '" .. নাম .. "'"; db: exec (sql) sql = "সেটিংস (নাম, মান) ভ্যালুয়েস ('' ..name … '', '' value .."); "; ডিবি: exec (sql) শেষ
ফাংশন সেটসেটিং স্ট্রিং (নাম, মান) সেটসেটিং (নাম, "" ".. মান .." '' ") শেষ
সেটিং ফাংশন টেবিলে সংরক্ষিত পূর্ববর্তী সেটিংস মুছে ফেলে এবং আমাদের নতুন মান ঢোকায়। এটি উভয় পূর্ণসংখ্যা এবং স্ট্রিংগুলির সাথে কাজ করবে, কিন্তু একটি স্ট্রিং সংরক্ষণের জন্য মানের চারপাশে একক উদ্ধৃতি প্রয়োজন, তাই আমরা সেটসেট স্ট্রিং ফাংশনটি আমাদের জন্য অতিরিক্ত বিট কাজ করার জন্য ব্যবহার করেছি।
ডাটাবেস থেকে সেটিংস লোড হচ্ছে।
ফাংশন getetetting (নাম)
স্থানীয় sql = "সেটিংস থেকে * যেখানে নাম = '' .. নাম .. '' '; স্থানীয় মান = -1;
ডিবিতে সারির জন্য: nrows (sql) মান = সারি। মান; শেষ
ফেরত মান; শেষ
ফাংশন getSettingString (নাম) স্থানীয় sql = "সেটিংস থেকে * যেখানে নাম = '" .. নাম .. "'"; স্থানীয় মান = '';
ডিবিতে সারির জন্য: nrows (sql) মান = সারি। মান; শেষ
ফেরত মান; শেষ
উপরে হিসাবে, আমরা ফাংশন দুটি সংস্করণে ভাঙ্গিয়াছি: এক পূর্ণসংখ্যা এবং স্ট্রিংগুলির জন্য একটি। আমরা এটি করার মূল কারণ হল ডাটাবেসটিতে কোনও সেটিং থাকা থাকলে আমরা নির্দিষ্ট মানগুলি দিয়ে তাদের সূচনা করতে পারি। GetSetting ফাংশন একটি -1 প্রদান করবে, যা আমাদের জানানো হবে যে সেটিংটি সংরক্ষণ করা হয়নি। GetSettingString একটি ফাঁকা স্ট্রিং ফিরে আসবে।
GetSettingString ফাংশন সম্পূর্ণ ঐচ্ছিক। এটির মধ্যে একমাত্র পার্থক্য এবং স্বাভাবিক getSetting ফাংশনটি যদি ডাটাবেসের মধ্যে পাওয়া যায় না তবে তা ফেরত দেওয়া হয়।
আমাদের সেটিংস টেবিল ব্যবহার করে।
এখন আমরা কঠোর পরিশ্রম করেছি, আমরা স্থানীয়ভাবে ডেটাবেসে সেটিংস লোড এবং সংরক্ষণ করতে পারি। উদাহরণস্বরূপ, আমরা নিম্নোক্ত বিবৃতি দিয়ে শব্দটিকে নিঃশব্দ করতে পারি:
setSetting ( 'শব্দ', মিথ্যা);
এবং আমরা শব্দের জন্য একটি বিশ্বব্যাপী ফাংশন সেটিং ব্যবহার করতে পারে:
ফাংশন playSound (soundID) যদি (getSetting ('শব্দ')) তারপর audio.play (soundID) endend
শব্দটি আবার চালু করতে, আমরা কেবল সত্যের জন্য শব্দ সেটিং সেট করি:
setSetting ( 'শব্দ', সত্য);
এই ফাংশন সম্পর্কে চমৎকার অংশটি আপনি সেটিংস টেবিলে স্ট্রিং বা পূর্ণসংখ্যা সংরক্ষণ করতে এবং সহজেই তাদের পুনরুদ্ধার করতে পারেন। এটি আপনাকে উচ্চ স্কোর সংরক্ষণ করতে প্লেয়ারের নাম সংরক্ষণ করতে কিছু করতে দেয়।