بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
بداية هذه أول محاولة لي في طرح عرض لبداية استعمال المحرك المشهور Irrlicht وان شاء الله سأضع بعض التطبيقات للنسخة الغير رسمية IrrlichtCP (CP=Cross Platform) وسرد بعض الفروق المهم هنا أننا نريد فتح طريق سهل لاستعمال المحرك وآمل أن أوفق في ذلك ان شاء الله
بعض الملاحظات:
1-الموضوع لا أعتبره مادة علمية تفيد كثيرا المتخصصيين بقدر ماهو إلا تطبيق عملي موجه للمبتدئيين الراغبيين في إستخدام المحرك على بيئة الدوت نت
2-معظم الأمثلة التي سأطرحها إن شاء الله في هذا الجانب ستكون إما بVB2005 أو C#2005 Express (فقط لاني في العمل مثبت الأول وفي البيت مثبت الثاني )
قبل البدأ:
قبل أن نبدأ معا ولأنه جانب تطبيقي بحت يجب أن تتوفر لدينا الأدوات اللازمة :
أولا : المحرك طبعا والموجود على الموقع الرسمي أين يمكن لكم تحميل الSDK وأنصح باستخدام آخر إصدار
الموقع الرسمي للمحرك
تحميل الSDK مباشرة من هنا
ثانيا: بيئة العمل طبعا بالدوت نت , يمكن تحميل C#2005 Express أو VB2005 Express من موقع Microsoft مباشرة
بعد تحضير الأدوات نبدأ على بركة الله
نفتح مشروع جديد على بيئة التطوير ونختار مشروع من النوع Console Application
طبعا نحتاج للبدأ إضافة مرجع المكتبة الخاصة بالدوت نت والموجودة في الملف Irrlicht.NET.dll
ملاحظة :
1- لمستعملي الvs2005 فما فوق استعمال يجب استعمال تغليف المكتبة يعني نحتاج الى ملفات اضافية
IrrlichtW.dll و libIrrlichtW.so هذه الملفات موجودة مع المكتبة IrrlichtCP
طبعا هناك فرق بين الملف Irrlicht.NET.dll الموجود في المحرك الرسمي والموجود مع الSDK الخاصة ب IrrlichtCP
لذلك لن نقوم باستبدال الملف الأصلي فقط ننسخ الملفين الذين نحتاجهما
أو يمكنكم تحميلها من المرفق
Dlls.zip (2.37ميجا بايت )
عدد مرات التحميل : 770
كما قلنا نضيف المرجع الخاص بالمكتبة
بعدها سنحتاج إلى استدعاء فضاءات الأسماء اللازمة للبدء باستعمال دوال المحرك
'VB code
Imports Irrlicht
Imports Irrlicht.Video
Imports Irrlicht.Core
//C# code
using Irrlicht;
using Irrlicht.Video;
using Irrlicht.Core;
في البداية يجب تحضير مخرج العرض للرسم ومن قوة محرك Irrlicht أن له القدرة للتعامل مع الDirectX و الOpenGl لذلك علينا تحديد الطريقة التي نريد بها التعامل مع الرسوم
لذلك نحتاج إلى استعمال كائن من IrrlichtDevice التابع لفضاء الأسماء Irrlicht
نعرف الكائن الذي تكلمنا عليه الخاص بالتعامل مع أجهزة العرض والذي سنقوم به برسم مختلف الكائنات داخله
'VB code
Dim device As IrrlichtDevice
//C# code
IrrlichtDevice device;
هذا الكائن سيقوم بالتعامل مع نافذة الرسم لذلك يجب تحضيرها بتحديد البرامترات اللازمة
وهي
DriverType نوع المكتبة المستعملة للرسم
Windowsize حجم شاشة الرسم من النوع Dimension2D
Bits رقم يحدد نسبة للبكسل على الألوان
Fullscreen من النوع boolean يحدد ان ما كان العرض سيكون ملئ الشاشة أو لا
والبرامترات الباقية سنتطرق لها في حين استعمالها
وبذلك يمكننا الآن تهيئة شاشة الرسم أو مخرج الرسم
'VB code
device = New IrrlichtDevice(DriverType.DIRECT3D9)
//C# code
device = new IrrlichtDevice(DriverType.DIRECT3D8);
بعد أن هيئنا شاشة المخرج يجب علينا تهيئة المسؤول عن الرسم لذلك نعرف متغير من النوع IVideoDriver الذي سيكون مربوط بالمخرج الذي حددناه طبعا
'VB code
Dim driver As IVideoDriver = device.VideoDriver
//C# code
IVideoDriver driver = device.VideoDriver;
الآن نعمل loop الأساسية التي لن تتوقف إلا إذا تم غلق النافذة المنشئة
'VB code
While device.Run
driver.BeginScene(True, False, New Color(255, 100, 100, 100))
driver.EndScene()
End While
//C# code
while (device.Run())
{
driver.BeginScene(true, true, new Color(255, 100, 100, 100));
driver.EndScene();
}
beginScene لها 3 برامترات تحدد طريقة عرض الأشياء مع المحرك irrlicht
منها backBuffer و zbuffer الذي لا نحتاج تفعيله في الرسوم الثلاثية الأبعاد عادة
ولون الخلفية المحدد بمزيج الألوان الأساسية
طبعا يمكن تحديد عنوان شاشة الرسم باستخدام الخاصية WindowCaption لل device المستعمل
device.WindowCaption = "First Test"
ننفذ الكود
مبروك هذا أول تجربة لنا لاستعمال المحرك
هل هناك مشاكل؟
نتأكد دئما من وجود الملفات اللازمة مع الملف التنفيذي المنشئ
لاتنسوا في مجلد ال Debug الموجود تحت المجلد Bin يجب أن نجد الملفات التالية
Irrlicht.dll
Irrlicht.NET.dll
IrrlichtW.dll
libIrrlichtW.so
سنرى في التطبيق القادم إن شاء الله كيف نقوم باضافة مجسمات ثلاثية وكسائها وكذلك اضافة كاميرا أيضا تتحرك طبعا