هیچ محصولی به سبد خرید اضافه نکرده اید

دنیای بازی و گیمینگ

آموزش کار با Registry در گیم میکر

در بازی می توان اطلاعاتی را برای استفاده در مواقع دیگر ذخیره کرد. شما می توانید این اطلاعات را در فایل های متنی یا باینری ذخیره کنید. همچنین می توانید آن ها را به سادگی در رجیستری ویندوز ذخیره کنید.رجیستری یک پایگاه داده بزرگ برای ذخیره ی اطلاعات ویندوز و برنامه های تحت آن می باشد. از ابتدای اجرای ویندوز تا لحظه ی خاموش شدن آن، هزاران بار اطلاعات از رجیستری خوانده و یا در آن نوشته می شود. بیشتر تنظیمات ویندوز و بعضی از برنامه ها در رجیستری ذخیره می شود. همچنین گیم میکر نیز به طور پیشفرض جدول امتیازات بازی (High Scores Table) را در رجیستری ذخیره می کند.someone-stole-the-shine-game-maker-8-logo

حتما از خودتان می پرسید چه وقت از فایل و چه وقت از رجیستری استفاده کنیم؟

برای ذخیره ی اطلاعات در فایل هربار می بایست آن فایل را باز کرده، اطلاعاتی را رد و بدل نماییم و سپس فایل را ببندیم؛ در صورتی که رجیستری همانند یک فایل همیشه باز هر لحظه برای تبادل اطلاعات در اختیار ماست. معمولا هنگامی که در یک بازی نیاز است چندین بار فایل را باز کنیم، اطلاعات تبادل کنیم و دوباره فایل را ببندیم، بهتر از از رجیستری استفاده نماییم.

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

کار با توابع رجیستری

در رجیستری مقدار ها در کلیدها ذخیره می شوند. هر بازی که با گیم میکر ساخته می شود یک کلید در رجیستری می سازد. 5 تابع زیر برای خواندن و نوشتن اطلاعات در این کلید می باشند.

registry_wri

 

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

در رجیستری اطلاعات در 5 دسته ذخیره می شوند که گیم میکر از 4 تای زیر می تواند استفاده نماید:

HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_USERS

در گیم میکر دسته ی پیشفرض HKEY_CURRENT_USER می باشد که می توانید با تابع زیر آن را تغییر دهید.

registry_set_root(root)

به این تابع عدد یکی از دسته های بالا را بدهید.

پس از انتخاب دسته می توانید کلیدها را نوشته یا از آنها بخوانید.

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

registry_write_string_ext(key,name,str)

رشته ی مورد نظر را با نام ذکر شده در کلید ذکر شده می نویسد.

registry_write_real_ext(key,name,x)

همانند تابع بالا برای مقدار عددی است.

registry_read_string_ext(key,name)

برای خواندن مقدار رشته ای از کلید مورد نظر می باشد. در صورت عدم وجود رشته ی خالی بازگردانیده می شود.

registry_read_real_ext(key,name)

برای خواندن مقدار عددی از کلید مورد نظر می باشد. در صورت عدم وجود عدد 0 بازگردانیده می شود.

registry_exists_ext(key,name)

در صورت وجود مقداری با نام ذکر شده در کلید مورد نظر، مقدار صحیح بازگردانیده می شود.

مثال زیر را دریافت و اجرا کنید.

te_string(name,str)

رشته ی مورد نظر را با نام ذکر شده در رجیستری ذخیره می کند.

registry_write_real(name,x)

عدد مورد نظر را با نام ذکر شده در رجیستری ذخیره می کند.

 

registry_read_string(name)

مقدار رشته ای مورد نظر را از رجیستری می خواند. در صورتی که موجود نباشد رشته ی خالی بازگردانده می شود.

registry_read_real(name)

مقدار عددی مورد نظر را از رجیستری می خواند. در صورتی که موجود نباشد مقدار 0 بازگردانده می شود.

 

registry_exists(name)

اگر مقداری با نام ذکر شده موجود باشد مقدار صحیح بازمی گرداند.

تمامی توابع بالا مقادیر را در کلید پیشفرض بازی ذخیره می کند. برای مشاهده این کلید ابتدای برنامه ی Regitry Editor را اجرا نمایید. برای اجرای آن با فشردن کلیدهای Windows+R محیط Run را اجرا و سپس در آن عبارت regedit را وارد کنید تا Registry Editor اجرا شود. پس از اجرای آن به مسیر زیر بروید:

HKEY_CURRENT_USERSoftwareGame MakerScores

اگر بازی شما از رجیستری استفاده کرده باشد برای آن یک کلید با عددی که در Game Identifier بازی تعیین شده ساخته می شود. این مقدار را می توانید در محیط گیم میکر، در Global Game Settings در سربرگ Loading مشاهده نمایید. اگر آن را تغییر دهید، کلید جدیدی برای بازی شما ساخته می شود.

پس از اجرا مکان کاراکترها را تغییر دهید، سپس مشاهده می کنید که کلیدهای ذکر شده در کد بازی، ایجاد شده اند.

توجه نمایید که رجیستری جای امنی برای ذخیره ی اطلاعات مهم نمی باشد، زیرا کاربر با یافتن مکان ذخیره ی اطلاعات مربوطه می تواند آن ها را تغییر دهد. اما می توانید اطلاعات را رمزگذاری کرده و سپس در رجیستری ذخیره کنید؛ سپس  هر بار هنگام خواندن اطلاعات از رجیستری آن ها را دوباره رمزگشایی کنید و در صورت عدم رمزگشایی مشخص می شود که اطلاعات دستکاری شده و نباید از آن استفاده کرد. البته دقت کنید که تابعی را که برای رمزگذاری و رمزگشایی استفاده می کنید یا خودتان می سازید، نقصی نداشته باشد.

تصویر پروفایل سید جاوید حسنی

سید جاوید حسنی

به بازی سازی علاقه دارم و امیدوارم از آموزش هایی که براتون میزارم مشکلاتتون حل بشه.


یک دیدگاه بگذارید

لطفا اگر سوالی خارج از موضوع این مطلب دارید آن را در فروم مطرح کنید.