همان طور که در بخش متغیر ها درباره محدوده آن ها صحبت کردیم در این بخش درباره انواع متغیر ها از نظر داده بررسی می شوند

به طور خلاصه منظور از انواع داده در اینجا این است که وقتی یک متغیر ایجاد می شود از ان برای نگهداری اطلاعات خاصی استفاده می شود این اطلاعات انواع مختلفی دارد (یا به عبارتی طعم) به عنوان مثال یک متغیر میتواند یک مقدار عددی را در خود جای دهد یا یک مقدار رشته ای ، این تفاوت بین نوع داده ها را انواع داده ای می نامیم در گیم میکر انواع داده ای زیر وجود دارد

رشته (string) : رشته شامل یک سری کاراکتر می شوند که در ׳ یا " نوشته می شوند برای مثال "hello world!123" یک رشته است

واقعی (real) : منظور از واقعی، اعداد صحیح و اعداد اعشاری است

ارایه : نوعی متغیر که مقادیر به صورت متوالی پشت سر هم قرار گرفته اند

بولین (boolean) : یک متغیر بولین فقط میتواند یا مقدار درست (true) یا غلط (false) را در خود جای دهد

اشاره گر(pointer) : اشاره گر متغیری است که به محل خاصی از حافظه اشاره دارد

نوع شمارشی(enum) : مجموعه ای از مقادیر ثابت هستند که تحت یک کالکشن نگهداری می شوند و شامل انواع مختلف داده ای میتوانند باشند

undefined : این یک مقدار خاص ثابت است که هنگامی که مقداری در متغیر مورد نظر وجود ندارد برگشت داده می شود

 

رشته ها (string)

 

یک رشته در واقع یک متن معمولی است که در دو علامت کوتیشن قرار دارد ("." یا ׳.׳) . شما میتوانید عملیات مختلفی را بر روی رشته ها انجام دهید مانند اضافه کردن دو رشته به هم و ساخت یک رشته بلند تر یا حذف یک بخش خاص از رشته یا حتی میتوانید اعداد آن را خارج کنید (برای اطاعات بیشتر به توابع رشته ای مراجعه کنید)

 

اعداد واقعی

اعداد واقعی هر مقدار میتوانند باشند جز رشته و نه هیچ نوع دیگری بنابراین مقدار های 123 ، 14234.234 ،0 ، -23434.234 ، -34 و ... همگی نمونه هایی از اعداد واقعی هستند در گیم میکر همه اعداد واقعی به عنوان یک float 32 bit ذخیره می شوند (حتی اعداد صحیح) به همین دلیل ممکن است بعضی خطا های کوچک هنگام استفاده از اعداد واقعی برای روند کردن به سراغ شما بیایند

 

ارایه ها

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

 

بولین

یک متغیر بولین میتواند یکی مقدار های true یا false را داشته باشد به خاطر داشته باشید گیم میکر مقادیر برابر و یا بالای 1 را به عنوان true تلقی میکند و همچنین بلعکس مقادیر کمتر از 1 را به عنوان false

همچنین میتوانید به جای کلمه های true و false به ترتیب از 1 و 0 استفاده کنید در هر صورت شما باید در استفاده از مقادیر غیر از true و false و 1 و 0 در بولین پرهیز کنید تا دچار مشکل ناشی از آن نشوید

 

اشاره گر ها

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

 

شمارشی

نوع شمارشی یا به اصطلاح enumrator به شما اجازه می دهد تا نوع داده ای خود را به صورت محدود شده توسط یک لیست از ثابت ها ایجاد و استفاده کنید محدود متغیر های شمارشی به صورت جهانی یا global است بدین معنی که در سرتا سر انجین قابل استفاده هستند (نیاز به استفاده از global یا globalvar برای فراخوانی یا تعریف آنها نیست ) 

ساختار آن ها به شکل زیر است :

enum { [= ]}

در ادامه ما یک نوع شمارشی برای رنگ ها ایجاد میکنیم و به ان تعدادی ثابت اضافه میکنیم

enum rainbowcolors {
    red,
    orange,
    yellow,
    green,
    blue,
    indigo,
    violet
    }

مقادیر ورودی این نوع فقط یا میتوانند عدد باشند یا اصطلاحات که به صورت پیشقرض مقدار عددی از 0 رو به بالا هستند به عنوان مثال مقادیر پیش فرض مثال بالا به صورت red =0, orange=1, yellow =3 و ... است میتوان در هنگام تعریف آن ها مقدار ورودی پیشفرض تعیین کرد 

مثال :

enum rainbowcolors {
    red = 5,
    orange = 5 * 2,
    yellow = 15,
    green = 20,
    blue = 25,
    indigo = 30,
    violet = 35 * enum_test.entry
    }

در مثال بالا از یک نوع شمارشی دیگر استفاده شده که برای مقدار دهیviolet به کار رفته فقط زمانی میتوان از آن استفاده کرد که نوع شمارشی قبل از این نوع تعریف شده باشد اما نمیتوان از متغیر ها یا توابع برای مقدار دهی ورودی استفاده کرد زیر در هنگام کامپایل به عنوان یک کانستنت در نظر گرفته می شوند 

برای دسترسی های بعدی از دات باید استفاده شود به مثال زیر دقت کنید :

var value = rainbowcolours.green; 

نکته: شما نمیتوانید مقادیر نوع شمارشی را پس از ان که تعریف شدند تغییر دهید 

 

Undefined

مقدار undefined که به عنوان مقدار null هم شناخته می شود وقتی برگردانده می شود که متغیر مورد نظر مقدار درستی در آن وجود ندارد در نظر بگیرید که یک ds_map دارید و از تابع ds_map_find_value() برای پیدا کردن مقداری در آن استفاده میکنید حالا چه می شود که اگر مقدار مورد نظر در محل مورد نظر وجود نداشته باشد؟ مسلما مقدار undefined برگشت داده می شود و شما میتوانید به راحتی از این ثابت برای بررسی مقدار بازگشتی ها استفاده کنید 

 

توابع بررسی انواع داده ای

در گیم میکر استادیو توابعی وجود دارند که شما میتوانید با استفاده از آنها به نوع یک متعیر پی ببرید که عبارت اند از :

is_string

is_real

is_array

is_ptr

is_undefined

 



نسخه PDF این مطلب را دانلود کنید






نویسنده: hadi eb