UfnCod3r
دوشنبه 14 مرداد 1392, 00:33 صبح
سلام
من سریع ی موتور خیلی ساده نوشتم . البته بیشتر جنبه ی اموزشی داره ولی خب ی موتور کامله :لبخند::متفکر:
هدف اصلی پیاده سازی سیستم کامپوننت بود
طوری که طرف بتونه باسی++ راحت کدش رو بنویسه (منم که کلا سی++ پرست و مخالف اسکریپت و ..:قهقهه:)
و بعد توی ادیتور بتونه به اشیا نصبت بده و مرحله رو ذخیره کنه و اجرا کنه و ..
سیستم سیو و لود هم داره خفن :تشویق::لبخند:
فقط کافیه از CGame::Save, CGam::Load استفاده بشه :لبخندساده:
برای نوشتن کامپوننت ی پروژه از نوع دی ال ال باید بزنید
و بعد Engine.lib رو لینک کنید و هدر ها رو هم مشخص کنید
بعدش یه فایل cpp. ایجاد کنید و اینا رو بنویسد
#include <Engine.h>
class CRotate : CComponent
{
float rotateSpeed;
COMPONENT_REG_BEGIN(CRotate)
COMPONENT_REG_VAR(rotateSpeed)
COMPONENT_REG_END()
void onCreate()
{
rotateSpeed = 1.0f;
}
void onUpdate()
{
owner()->rotation += rotateSpeed;
}
};
COMPONENT_IMPL(CRotate);
چیز خاصی نداره ی کامپوننت ساده که شی رو می چرخونه
برای اینکه متغیر ها تو ادیتو نمایش داده بشن و بشه مقدارشون رو عوض کرد و باید رجیسترشون کنید
برااینکار فقط کافیه از اون 4 تا ماکروی جادویی استفاده کنید مثل همین کد :لبخند:
نوع هایی که تو ادیتور نمایش داده می شه و می شه تغییر داد
bool, int, float, char*, SVec2, SColor هست . بقیه چیزا رو حوصله نداشتم بنویسم :ناراحت:
ولی بقیه چیزا هرچی که باشه مستقیم ذخیره میشه و موقع سیو و لود مشکلی پیش نمیاد
char*, GameObject*, Component* هم میشه استفاده کرد به طور خودکار ذخیره و .. میشن :لبخندساده:
حالا بعد کامپایل دی ال ال رو بزارید کنار Launcher.exe یا Editor.exe
در ضمن نام دی ال ال باید با _component شروع بشه تا به صورت خودکار لود بشه .:لبخند:
بعد ادیتور رو اجرا کنید وسط صفه کلیک کنید و ی شی بسازید و کامپوننت بدین و پلی کنید .:لبخند:
ادیتورش هم چیز خاصی نداره:متفکر:
تمام
سورس + باینری »»
https://github.com/UFNHGGI/CBGE
نظر بدین :تشویق:
من سریع ی موتور خیلی ساده نوشتم . البته بیشتر جنبه ی اموزشی داره ولی خب ی موتور کامله :لبخند::متفکر:
هدف اصلی پیاده سازی سیستم کامپوننت بود
طوری که طرف بتونه باسی++ راحت کدش رو بنویسه (منم که کلا سی++ پرست و مخالف اسکریپت و ..:قهقهه:)
و بعد توی ادیتور بتونه به اشیا نصبت بده و مرحله رو ذخیره کنه و اجرا کنه و ..
سیستم سیو و لود هم داره خفن :تشویق::لبخند:
فقط کافیه از CGame::Save, CGam::Load استفاده بشه :لبخندساده:
برای نوشتن کامپوننت ی پروژه از نوع دی ال ال باید بزنید
و بعد Engine.lib رو لینک کنید و هدر ها رو هم مشخص کنید
بعدش یه فایل cpp. ایجاد کنید و اینا رو بنویسد
#include <Engine.h>
class CRotate : CComponent
{
float rotateSpeed;
COMPONENT_REG_BEGIN(CRotate)
COMPONENT_REG_VAR(rotateSpeed)
COMPONENT_REG_END()
void onCreate()
{
rotateSpeed = 1.0f;
}
void onUpdate()
{
owner()->rotation += rotateSpeed;
}
};
COMPONENT_IMPL(CRotate);
چیز خاصی نداره ی کامپوننت ساده که شی رو می چرخونه
برای اینکه متغیر ها تو ادیتو نمایش داده بشن و بشه مقدارشون رو عوض کرد و باید رجیسترشون کنید
برااینکار فقط کافیه از اون 4 تا ماکروی جادویی استفاده کنید مثل همین کد :لبخند:
نوع هایی که تو ادیتور نمایش داده می شه و می شه تغییر داد
bool, int, float, char*, SVec2, SColor هست . بقیه چیزا رو حوصله نداشتم بنویسم :ناراحت:
ولی بقیه چیزا هرچی که باشه مستقیم ذخیره میشه و موقع سیو و لود مشکلی پیش نمیاد
char*, GameObject*, Component* هم میشه استفاده کرد به طور خودکار ذخیره و .. میشن :لبخندساده:
حالا بعد کامپایل دی ال ال رو بزارید کنار Launcher.exe یا Editor.exe
در ضمن نام دی ال ال باید با _component شروع بشه تا به صورت خودکار لود بشه .:لبخند:
بعد ادیتور رو اجرا کنید وسط صفه کلیک کنید و ی شی بسازید و کامپوننت بدین و پلی کنید .:لبخند:
ادیتورش هم چیز خاصی نداره:متفکر:
تمام
سورس + باینری »»
https://github.com/UFNHGGI/CBGE
نظر بدین :تشویق: