ساختار بازی ها _ پشت صحنه چه خبره ؟
از نظر کامپیوتر ، مثلا پلیر شما ، یک شیئه .
این شئ میتونه انیمیشن داشته باشه ، جسم داشته باشه ، شکل داشته باشه و...
در حوزه بازی سازی چندین نوع شئ قابل درک برای کامپیوتر وجود داره و اینجا چند تاش رو نوشتم :
اجسام (body,object)
یک جسم ، میتونه با بقیه اجسام برخورد کنه و وارد محدوده ها (area) بشه.
میتونه یک جلوه بصری رو به عنوان زیر مجموعه داشته باشه و به صورت طبیعی ، حتما باید یک شکل هم داشته باشه. البته شما به عنوان گیمر ، شکل اون جسم رو نمیبینید و فقط جلوه بصریش برای شما قابل دیدنه.
وقتی که شما دکمه w رو فشار میدید ، کاراکتر شما راه نمیره ، بلکه جسمش در جهت محور x ها ، حرکت میکنه. چون انیمیشن راه رفتن و اسِتش (Asset) زیر مجموعه اون جسمه ، پس جسم انیمیشن راه رفتن رو هم به دنبال خودش میکشونه.

اون آبیه جسمه ، و پسره هم یک جلوه بصریه.
اینجا ، انیمیشن راه رفتن باعث حرکت نشده ؛ در واقع حرکت باعث پخش شدن انیمیشن راه رفتن شده .
در موتور یونیتی (unity) ، شما بعد از ایجاد یک اسپرایت ، توی قسمت 2D physics میتونید براش یک جسم شکل دار انتخاب کنید . مثلا rectangle collaider ، polygone collaider و... (امیدوارم املاشون رو درست نوشته باشم 😅)
در موتور گودوت (godot) شما اول باید یک جسم انتخاب کنید ؛ مثل rigit body , stutic body , kinematic body و... . بعد از انتخاب جسم ، شما باید براش یک شکل انتخاب کنید (مثلا دایره ، مستطیل ، مثلث و اشکال فانتزی) . در آخر میشه براش اسپرایت ، Asset ، انیمیشن و چیز های دیگه گذاشت.
محدوده ها (Area)
اشیایی به اسم محدوده یا منطقه وجود داره.
اینا شبیه به اجسام هستن ، با این تفاوت که با اجسام دیگه نمیتونن برخورد کنن ؛ ولی اگه یک جسم بهشون وارد بشه ، میتونن واکنش نشون بدن.
مثلا توی بازی های هک اند اسلش دو بعدی ، از یک محدوده غیر فعال استفاده میکنیم. وقتی که دکمه مربوط به حمله فشار داده بشه ، این محدوده برای مدت کوتاهی فعال میشه و هر چیزی رو که واردش شده باشه ، در نظر میگیره .
حالا میتونیم برای این محدوده ، کد بنویسیم (GD script):
:()func on_area_body_entere
()body.take_damage
اگه جسمی وارد این محدوده شد ، تابع take_damage یا همون ضربه خوردن رو اجرا بکنه.

محدوده ها کاربرد های مختلفی دارن ، ایجاد خط پایان ، ایجاد سیستم ضربه زدن ، تیر ها تو بازی های شوتر ، ساختن موانع و تله های کشنده و خیلی کاربرد های دیگه.
کنترل ها و بقیه اشیا (controls)
نوار جون و خط استامینا ، نمایش تعداد تیر ها ، دکمه های قابل کلیک کردن (button) و خلاصه اینجور چیزای مربوط به رابط کاربری ، توی گودوت انجین ، کنترل نامیده شدن.
اشیای یا گره های(node) دیگه ای وجود دارن و تعدادشونم خیلی زیاده ، مثلا تایمر ، ری کاست ، پخش کننده صدا و انیمیشن و ویدئو (برای کات سین ها ) و...
خب ، این پست هم تمام شد ، مبارک خیلیا ...(🤣)
کامنت نزاری امشو میام محلتان یه شری بر پا مکنم