الشبكة العربية لمطوري الألعاب

خبير  السيد فتحى السيد مشاركة 11

الأن سوف نضيف صندوق
 
انشئ فئة جديده ولتكن mbox



Imports Framework 
Imports Framework.Irrlicht 


Public Class mBox 
 Inherits Framework.Entity 
 Private m_node As SceneNode=Nothing 
        Public Sub New (ByVal mgame AsGame) 
                MyBase.New(mgame) 
                Dim texture As Texture=Game.VideoDriver.GetTexture("box.jpg") 
                 m_node = mgame.IrrlichtDevice.SceneManager.AddCubeSceneNode(19,Nothing,-1) 
                m_node.SetMaterialFlag(MaterialFlag.Lighting,False) 
                m_node.SetMaterialTexture(0, texture) 
                m_node.Position = New Vector3D(10,-10,70) 
        End Sub  
End Class
 
وهذه صورة الصندوق ضعها فى مجلد Debug هذا المجلد هو الذى سوف نتعامل معه دائماً




ونستدعى الصندوق من الإجراء new فى الفئة mygame هكذا

   Entities.Add(New mBox(Me))


 
ماقمنا بعمله هو فقط انشاء مكعب داخل اللعبة ولو لاحظتم أن عند الانشاء في الإجراء New توجب علينا ادراج متغير من النوع Game لكي يتم اضافتها داخل اطار اللعبة المنشئة طبعا

ولكى نرى الصندوق يجب اضافة كاميرة الى اللعبة والكميرات فى هنا 3 انواع
1- كاميرة متحركة
2-  كاميرة ثابتة
3- كاميرة مثل كاميرة برنامج المايا (انا لا اعرفها)
نحن سوف نضيف الكميره المتحركة

فى الإجراء new فى الفئة mygame  اكتب

SceneManager.AddCameraSceneNodeFPS(Nothing,300,300,False)  
 هيا جرب وتحرك بالكاميره بالأسهم

خبير  السيد فتحى السيد مشاركة 12

مارأيكم ان نطور من المشروع قليلاً
 
نحن لم نحدد للمحرك خصائص النافذه فبالتالى هو نفذ بالخصائص الأفتراضية وهى
 
OpenGL و أبعاد (640, 480) يمكننا تغيير هذه الخصائص باعادة صياغة الفئة باضافة تعديل بسيط
يجب اعادة كتابة انشاء الفئة بتحديد نوع drivetype

استبدل هذا السطر

اضف فى اول الفئة هذا الأمر

Imports Framework
Imports Framework.Irrlicht



MyBase.New(dtype,NewDimension2D(640,480),32,False,False,False,False) 
بهذا السطر
 



MyBase.New(Irrlicht.DriverType.Direct3D9, New Irrlicht.Dimension2D(800, 600), 32, False, False, False, False)
 
ونريد اضافة مفتاح  للخروج  من اللعبة سوف نستخدم الأحداث الخاصة بلوحة المفاتيح
 
فى الفئة mygame نضيف هذه الوظيفة
 

 Private Function OnEvent(ByVal ev As [Event]) As Boolean
        If ev.Type = EventType.KeyInputEvent And ev.KeyCode = KeyCode.Escape Then
            IrrlichtDevice.Close()
        End If
    End Function

ونستدعيها من اجراء new هكذا 



 AddHandler IrrlichtDevice.OnEvent, AddressOf OnEvent
والأن اريد ان ارى تعليقاتكم

خبير مشرف أسامة السلمان مشاركة 13

لقد ذهبتم بعيدا ونسيت أن أحق بكم 😖

لكن أرجو أن تخبرني لماذا يظهر Error هنا؟



أسامة السلمان
مطور ألعاب ومهندس برمجيات.
للتواصل: https://twitter.com/TheDorgam
بما أن الله على كل شيء قدير ؛ إذا ، ليس هناك شيء يدعى "المستحيل".

خبير  السيد فتحى السيد مشاركة 14

هذا سببة انك قسمت السطر اعد كتابة هذا السطر
 



Inherits Framework.Game

خبير مشرف أسامة السلمان مشاركة 15

مالمشكلة الآن؟



أسامة السلمان
مطور ألعاب ومهندس برمجيات.
للتواصل: https://twitter.com/TheDorgam
بما أن الله على كل شيء قدير ؛ إذا ، ليس هناك شيء يدعى "المستحيل".

خبير  مهند محمد علي مشاركة 16

يا شباب  ما رايكم نرجع للموضوع الاول ونبرمج لعبه اولا باستخدام الvb.net  فقط لكي 
نطبق فيها المفاهيم الاساسية التي تعلمناها ثم بعد ذلك نتقل الي المحرك


اظن اننا نحتاج لهذا😄

خبير  السيد فتحى السيد مشاركة 17

الخطء انك لم تنشئ الفئة لكى تنشئ فئة جديدة ضغطة يمين على كلمة start ثم










خبير  السيد فتحى السيد مشاركة 18

وفي 06 مايو 2011 09:19 م، أعرب المهند عن رأيه بالموقف كالآتي:

يا شباب  ما رايكم نرجع للموضوع الاول ونبرمج لعبه اولا باستخدام الvb.net  فقط لكي 
نطبق فيها المفاهيم الاساسية التي تعلمناها ثم بعد ذلك نتقل الي المحرك

الذى تعلمناه فى الفجول بيسك غير كاف لعمل لعبة
المحرك اسهل المشكلة انكم لم تدرسو الفجول بيسك اولاً لكن نحن نخطو خطوه خطوة

خبير  مهند محمد علي مشاركة 19

لا اقصد ان نتسخدم المفاهيم التي تعلمناها فقط بل نزيد عليها

فهنالك العاب2D كثيره تم عملها الفيجول بيسك

من الصعوبه  اننا نستطيع المتابعه في المحرك من دون تعلم اللغه فنحن لا نعرف حتي الحلفات ولا الكلاسات

+++كنت متحمس جدا لكن أظن ان المحرك ياخذ وقت اكثر في التعلم والمشكله انني ليس لدي وقت كافي

خبير  السيد فتحى السيد مشاركة 20

لا تيأس نحن تقريبا انهينا اغلب المحرك اللغة سوف نتعلمها مع المحرك وان اردتم التوقف حتى تتعلمو اللغة كما تريدون