آموزش کار با فایل ini و ذخیره ی اطلاعات در ان – گیم میکر

بازی سازی گیم میکر
745
0

سلام دوستان

امروز با یک اموزش در خواستی دیگه  در کنار شما هستیم

 

مقدمه :

فایل های ini  فایل ای کوچک و بسیار کم حجمی هستند که اکثر سیستم عامل ها از ان پشتیبانی میکنند و یکی از ایده آل ترین روش ها برای ذخیره ی اطلاعات مانند

  • ذخیره تنظیمات
  • ذخیره مراحل بازی
  • ذخیره امتیازات کاربران
  • فایل های زبان برای ساخت برنامه چند زبانه
  • ذخیره اطلاعات کاربر
  • و غیره

می باشد

 

اما چیزی که برای خیلی ها سوال است  اینه که چجوری از این فایل استفاده کنیم و اطلاعات خودمون رو ذخیره کنیم
که در اینجا به صورت کامل به شما یاد میدیم

 

شروع آموزش :

قبل از شروع اموزش باید با چند تا از مهمترین توابع ini آشنا بشید
اگه متوجه نشدید هم اشکال نداره چون در جلو تر مثال هایی میاریم که بیشتر باهاش اشنا بشید

ini_open

این تابع یک فایل ini رو برای خواندن / نوشتن باز میکنه همچنین اگه در مسیری که بهش داده میشه فایل مورد نظر وجود نداشته باشه . گیم میکر یک فایل به همان نام در آن مسیر میسازه اما فقط در صورتی که بخواید متنی رو در آن بنویسید.

اگه بخواید یک متن رو از داخل فایل بخونید و فایل وجود نداشته باشه احتمالا با خطا مواجه میشوید توجه کنید که شما فقط میتونید روی یک فایل ini به طور همزمان کار کنید و برای باز کردن یک فایل ini دیگر باید از کد ini_close(); استفاده کنید بهتره پس از پایین ذخیره یا خواندن اطلاعات این کد رو استفاده کنید

ini_close

از این کد برای بستن یک فایل ini استفاده میشود اگه شما یک فایل ini رو باز کنید و پس از تغییرات فایل را نبندید هیچ چیزی بر روی حافظه ذخیره نمیشود و اطالاعات فقط در Ram باقی میمانند همچنین اگه شما قبل از بستن فایل ini یک فایل جدید باز کنید با خطا رو به رو میشوید همچنین این کد یک متن نهایی نیز بر میگردونه که برای استفاده و ذخیره ان در سرور های انلاین استفاده میشه و در بازی های افلاین کاربردی ندارد [/toggle]

ini_write_real , ini_read_real

از این دو کد به ترتیب برای خواندن یک عدد و نوشتن یک عدد در فایل ini استفاده میشه و بیشتر برای ذخیره امتیازات خوبه

ini_write_string , ini_read_string

از این دو کد به ترتیب برای خواندن یک متن و نوشتن یک متن در فایل ini استفاده میشه و بیشتر برای ذخیره اطلاعات کاربران خوبه

 

خوب اینا مهمترین کد های کار با ini بودن  البته بقیه کد ها رو نیز برای یادگیری بهتر به شما در اخر اموزش میگیم

 

ادامه اموزش رو در قالب یک مثال به شما یاد میدیم

یک object جدید بسازید و به event : create  کد زیر رو اضافه کنید

در مثال بالا ما ابتدا یک متغییر از نوع عددی ساختیم و در اون امتیاز کاربر رو ذخیره کردیم ( الکی مثلا امتیاز کاربر ۱۰۰۰ بوده. شما میتونید یک امتیاز واقعی ذخیره کنید )

 

بعد از کد ini_open استفاده کردیم و یک فایل رو برای ذخیره ی اطلاعات باز کردیم savedata.ini هم اسم فایله که میتونه هر اسمی باشه  همچنین میتونید ادرس محل ساخت فایل رو هم بهش بدید مثلا میتونید از کد

working_directory

استفاده کنید . کد بالا مقدار متفاوتی رو بر میگردونه  مثلا در ویندوز مسیر زیر رو بر میگردونه

“%LOCALAPPDATA%/gamedir/”

gamedir اسم بازی شماست

نمونه کد :

زیاد خودتون رو در گیر کد بالا نکنید

 

خوب ادامه اموزش

در خط بعد ما از ini_write_real که در بالاتر گفتیم برای ذخیره اعداد استفاده میشه  استفاده کردیم

این کد  سه تا Argument رو میگیره

اولیش section یا به فارسی ” بخش ” نام دارد و برای گروه بندی اطلاعات استفاده میشه و یه چیزی مثل دسته بندیه

 

مثلا شما فایل ini رو به سه بخش تقسیم میکنید به نام های  تنظیمات و اطلاعات کاربر و امتیازات
و اطلاعات مربوط به هر کدوم رو در اون بخش ذخیره میکنید

در مثال بالا ما اسم بخش رو save1 نام گذاری کردیم

 

دومین Argument کلید یا key نام دارد و برای پیدا کردن اطلاعات کاربرد داره

مثلا شما برای ذخیره نام کاربر کلید “user_name” رو قرار میدهید و مقدار اونو برابر با نام کاربر قرار میدید

بعدا اگه خواستید اسم کاربر رو دریافت کنید متونید با یک بزنید تا مقدار کلید user_name رو براتون بر گردونه

در اینجا کلید برابر با Score میباشد

و Argument  بعدی مقداری که میخوایم ذخیره کنیمه در اینحا گفتیم  متغییر score رو ذخیره کنه که برابر با ۱۰۰۰ قرار داده بودیم . میتونید خودتون به صورت دستی ۱۰۰۰ رو وارد کنید

 

در کد بعدی امدیم و مقداری که ذخیره کردیم رو دوباره از رو فایل ini خواندیم  البته  میتونید این کار رو در یک کد جدا انجام بدید

ما در اینجا به خاطر اموزشی بودن کد   همزمان  هم یه متغییر رو ذخیره کردیم و همزمان اونو خواندیم و در متغییر score2 ذخیره کردیم

سپس فایل ini رو بستیم تا اطلاعاتی که نوشتیم ذخیره بشه

برای تست کردن میتونید  بزنید متغییر score2 در draw نشان داده بشه

اگه متغییر  مقدار ۱۰۰۰ رو نشان داد  یعنی این که فایل کار میکنه

چون فقط در صورتی که امتیاز ذخیره بشه  میتونه اونو بخونه و نشان بده در غیر این صورت  ارور میده

 

برای ذخیره متن هم میتونید مشابه همین عمل کنید فقط باید از کد
ini_read_string و ini_write_string

استفاده کنید

 

توضیح تصویری از خروجی :

 

در عکس بالا که از یک فایل ini عکس گرفته شده

متن داخل کروشه  [ ]  همون بخش ها هستند و  sound و music و … همون کلید ها یا key ها هستند و مقدار جلوشون هم که گفتن نداره

 

همچنین بهتره کد های زیر رو هم یاد بگیرید

کد :

برا وقت هایی که میخواید یک کلید رو حذف کنید  مثلا در مثل بالا  ما میتونیم با کد زیر   مقدار Score رو حذف کنیم

 

کد :

برای این استفاده میشه که ببینیم کلید مورد نظر قبلا ساخته شده یا نه

مثلا چک کنیم ببینیم قبلا Score کاربر ذخیره شده یاد نه

 

کد :

برای این استفاده میشه که یک بخش رو به طور کامل حذف کنیم

مثلا تمام تنظیمات کاربر رو به صورت یک جا حذف کنیم

یا تمام امتیازات ذخیره شده

در مثال زیر ما تمام بخش save1 رو حذف میکنیم

 

 

تقریبا اموزش تمام شد فقط باید چند تا نکته رو به شما بگم

اول این که برای این که  بتونید در فایل ini هر متنی با هر زبانی رو بنویسید باید اول یک فایل به صورت دستی به فرمت utf-8 بسازید و بعد فایل های بعدی رو بر روی ان بنویسید تا از زبان های مختلف پشتیبانی شود

البته این مورد برای ما کاربرد نداره  چون گیم میکر از زبان فارسی پشتیبانی نمیکنه  پس کاربردی هم نداره که در ini فارسی بنویسیم

نکته بعدی هم اینه که اگه محل ذخیره فایل رو چیزی قرار ندید

در  سیستم عامل های متفاوت در جا های متفاوت ذخیره میشه  مثلا در اندروید در مسیر android/data  ذخیره میشه

 

 

در اخر  اگه مشکل کوچیکی با آموزش داشتید در بخش نظرات و اگه مشکل بزرگی داشتید  :d در انجمن  اعلام کنید تا بهش رسیدگی بشه

خسته نباشم  🙂

 

مطالب وب سایت Dev-Iran :

کپی و رایت مطلب به تیم Dev-Iran.ir باز میگردد که در حال حاضر صاحب امتیاز این وب سایت گروه اوکسو می باشد.

کپی و رایت مطالب اوکسو :

قابل توجه علاقه مندان و کپی کنندگان گرامی ، تمامی مطالب این وب سایت تحت مجوز خالق (Creative Commons) می باشد و اجازه کپی کردن ، استفاده تجاری مطالب بدون اجازه صاحب اثر مجاز نمی باشد و طبق مجوز اثر پیگرد قانونی به همراه خواهد داشت.

مجوز کریتیو کامنز
این کار مجوز دارد تحت مجوز کریتیو کامنز نسبت‌دادن-غیرتجاری-بدون انشقاق ۴٫۰ بین‌المللی.

این مطلب پایان یافت و امیدواریم به نتیجه دلخواهتان رسیده باشید . اگر به نتیجه دلخواهتان هنوز دست نیافته اید , میتوانید برای رفع مشکل به تالار گفتمان اوکسوف مراجعه کنید و سوال خود را مطرح کنید.

تالار گفتمان اوکسوف

همچنین میتوانید ما را در شبکه های اجتماعی نیز دنبال کنید و از جدید ترین اخبار ما با خبر شوید :

اینستاگرام

تلگرام
آپارات

نظرات وب سایت

  1. پرنیان
    پاسخ دادن

    ببخشید سوالی داشتم اما راجع به موضوعی دیگریست، اگه میشه اموزش ثانیه در گیم میکر استودیو رو بزارین اخه قابلیت sleep از استودیو برداشته شده و من که میخوام بعد از برخورد با دشمن بازی ۲ ثانیه توقف کنه و بعد از اول بیاد یاد ندارم دستورشو و همینطور با الارم و زمان تاحالا کار نکردم اگه میتونین یه اموزشی بزارین با تشکر.

ارسال یک نظر .