السلام عليكم ورحمة الله وبركاته
نبدأ على بركة الله في دروس تطبيقية حول التغليف المعتمد للمحرك الشهير Ogre المخصص للغات الدوت نت
هذا الموضوع لن يخصص لمشاكل التشغيل فنرجو من الاخوة الذين يقرأون الموضوع لاول مرة ولم يستطيعوا تشغيل المحرك أن يراجعو الموضوع المتعلق بالتثبيت ومشاكل التشغيل هنا
ملاحظة : العمل هنا سيكون على الvb2008 او الc#2008
أولا : إنشاء مشروع جديد
نقوم بانشاء مشروع جديد سواء على الvb او السي شارب من النوع Console Application
بدون أن ننسى المكان الذي تم فيه حفظ المشروع
ثانيا : نسخ الملفات الضرورية للعمل
قد تكون طريقة بدائية لكن فقط لكي نعرف الآن ماهي الملفات الضرورية للتشغيل
نقوم بنسخ هذه الملفات (ملفات الdlls الضرورية والخاصة بالتغليف وملفات الاعدادات ) إلى المجلد Debug الموجود تحت Bin أين حفظنا مشروعنا في الخطوة الأولى
طبعا هنا لم ننسخ ملف newton.dll ولا MogreNewt.dll لاننا لن نبدأ بهم الآن :)
(في المستقبل سنقوم بنسخ الملفات الضرورية إلى مجلد النظام ونكتفي فقط بملفات الاعدادات )
ثالثا: إضافة المراجع References التي سنستعملها
نبحث في مجلد الDebug عن تغليف الMogre والExampleApplication
رابعا : البدء بكتابة الكود
من نفس القائمة Project نضغط على Add New Item لاضافة كلاس إلى المشروع ولنسميها aGame
نعمل imports لفضاءي الأسماء الذين أضفنا لهما مرجعهما في السابق
ٍVB Imports Mogre Imports Mogre.Demo.ExampleApplication C# using Mogre; using Mogre.Demo.ExampleApplication;
التغليف المنشئ لExampleApplication يعطينا فئة يمكن توريثها اسمها Example بها كل الوظائف الأساسية لتشغيل اللعبة وهي الفئة الأساسية التس سنستعملها دائما لذلك نقوم بعملية توريث لهذه الفئة
بعد توريثها يمكننا الاستفادة من اجراءتها وأحد أهم هاته الاجراءات هي CreateScene هنا يتم انشاء متغيرات اللعبة كلها
من أجل التشغيل فقط نقوم باضافة لون لضوء محيط Ambient Light فقط (لن يظهر ولن يكون له تأثير ) لكن حتى لا يرجع هذا الاجراء Exception لعدم احتوائه على أي أمر
ٍVB
Imports Mogre
Imports Mogre.Demo.ExampleApplication
Public Class aGame
Inherits Example
Public Overrides Sub CreateScene()
sceneMgr.AmbientLight = New ColourValue(0.2F, 0.2F, 0.2F)
End Sub
End Class
C#
using Mogre;
using Mogre.Demo.ExampleApplication;
namespace SharpTut1
{
class aGame:Example
{
public override void CreateScene()
{
sceneMgr.AmbientLight = new ColourValue(0.2f, 0.2f, 0.2f);
}
}
}للتشغيل الآن نقوم بانشاء نسخة جديدة من الفئة aGame في الملف الرئيسي لتشغيل المشروع
VB Dim test As aGame = New aGame test.Go() C# aGame test =new aGame(); test.Go();
خامسا: قبل التشغيل
هنا قصدت من عدم نسخ كل الملفات أن أعدل على ملفات الاعدادات لاننا لو شغلنا المثال فانه سيحدث خطأ
بالنسبة لملفات الاضافات Plugins فاننا فقط نسخنا الملفات الثلاث التالية:
RenderSystem_Direct3D9
RenderSystem_GL
Plugin_ParticleFX
لكن لو فتحنا ملف plugins.cfg سنجد الاضافات الأخرى مكتوبة أيضا فالمحرك سيقوم بتحميلها لكن ملفاتها غير موجودة
لذلك نقوم بحذف الأسطر التي تشير إلى الملفات الغير موجودة ونحفظ الملف
لكن ليس هذا كل شئ مازال مكان تواجد الResources من ملفات المصادر والميديا المستعملة من قبل المحرك والمسجلة في ملف resources.cfg
الملفات المشار اليها تبدأ دائما بـ../../ أي انها يجب أن تكون في مجلد البرنامج فاما علينا أن نقوم بنسخ كل هذه المجلدات المشار إليها أو التعديل بتثبيت مكان تواحدها واستبدال ../../ بمكان تواجد الملفات وهو مجلد الSDK أي C:/MogreSDK (في الغالب عند تثبيته يكون في الC:)
وبذلك يمكننا تشغيل المثال
تطبيق المثال بالVB فقط (بدون ملفات DLLs لان الحجم سيكون كبيرا) معه فقط ملفات الأعداد بعد التعديل
التطبيق سيحمل شاشة سوداء فقط مع شعار Ogre :D
بالتوفيق دائما وإلى أمثلة وتطبيقات أخرى
