منتديات احلام عمرنا
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتديات احلام عمرنا

مرحبا بك يا زائر فى منتدى احلام عمرنا

 
الرئيسيةأحدث الصورالتسجيلدخول

 

 شرح مفصل لبرمجة ال direct x وتصميم الالعاب باستخدام الفيجوال بيسك 6

اذهب الى الأسفل 
كاتب الموضوعرسالة
فتى المدينة
المدير العام
المدير العام
فتى المدينة


عدد الرسائل : 902
العمر : 33
الأوسمة : شرح مفصل لبرمجة ال direct x وتصميم الالعاب باستخدام الفيجوال بيسك 6 15751611
مزاجى : شرح مفصل لبرمجة ال direct x وتصميم الالعاب باستخدام الفيجوال بيسك 6 Pi-ca-46
المهنة : شرح مفصل لبرمجة ال direct x وتصميم الالعاب باستخدام الفيجوال بيسك 6 Collec10
تاريخ التسجيل : 27/07/2008

شرح مفصل لبرمجة ال direct x وتصميم الالعاب باستخدام الفيجوال بيسك 6 Empty
مُساهمةموضوع: شرح مفصل لبرمجة ال direct x وتصميم الالعاب باستخدام الفيجوال بيسك 6   شرح مفصل لبرمجة ال direct x وتصميم الالعاب باستخدام الفيجوال بيسك 6 I_icon_minitimeالسبت 20 سبتمبر - 19:05

دايركت اكس

دايركت إكس :
من منا لا يعرف دايركت إكس ؟؟؟ من منا لا يملك على جهازه دايركت إكس ؟؟؟ على الرغم من أن كلنا تقريبا نمتلك دايركت إكس على جهازنا ... وأننا نحرص على امتلاك أحدث اصداراتها إلا أننا - أو معظمنا - لا نعرف ما هي دايركت إكس ... وذلك أننا بدون البرمجة لا نحتاج لأن نعرف ما هي دايركت إكس مادامت تشغل لنا الألعاب وبرامج MultiMedia فلا حاجة بنا لأن نعرف ما هي دايركت إكس ...
ولكن مادمنا اتخذنا برمجة الألعاب دربا لنا فنحن لا مفر لنا من تعلم دايركت إكس ... ودايركت إكس هي مجموعة من (التعريفات والثوابت والمتغيرات والدوال والوظائف والتركيبات والعناصر) التي تجتمع جميعا مكونة ما يسمى (مكتبة) ... وهذه المكتبة وظيفتها استقبال أوامرنا التي نكتبها على هيئة كود وتحويلها إلى صورة رسومية تظهر لنا ... وليس هذا كل شيء فهي كذلك تقوم بالتحكم بذاكرة كارت الفيديو Video Card Memory وتتحكم في ظهور البرامج الأخرى ... وهي من صفاتها المهمة .. فاللعبة التي تعمل الآن بدايركت إكس لا يمكن أن يعمل برنامج آخر ويظهر بجوارها ... بل تظل عي فقط الظاهرة على الشاشة ...
الآن نحن نعرف الكثير عن دايركت إكس 7 وبقى أن نعرف كيف نستخدمها في البرمجة ...
ولتعريف مكتبات دايركت إكس إلى برنامجك نفتح Project > References ستظهر لنا قائمة نختار منها DirectX7 Type Library for VisualBasic 6.0 ... وبدون تعريف هذه المكتبات لا نستطيع التعامل مع دايركت إكس ...
لنعرف أن كائن دايركت إكس ذاته لن نستخدمه في الكود إلا لتعريف الكائنات الأخرى فقط ... ولن نستخدمه في الكود إلاعلى مستوى صغير ... ولذا فأول ما سنتعلمه هنا هو كيف نعلن عن كائن دايركت إكس جديد



وذلك يكون كالتالي
كود:
Sub CreatDxObject()
Dim Dx As DirectX7
Set Dx = New DirectX7
End Sub
وذلك لأن كائن دايركت إكس كالكثير من الكائنات المقبلة لا يكفي مجرد الإعلان عنه فقط ولكن ينبغي استخدام التعريفة New لنخبر البرنامج بأننا سنصنع كائنا جديدا لنستخدمه في برنامجنا... هذا كل استخدامنا للكائن دايركت إكس في الوقت الحالي وحان وقت البدء في دروس كائن دايركت درو ... وهو كائن (كما يقول اسمه) كائن مختص بالرسوميات .

كائن Direct Input


يستخدم كائن دايركت انبت في معرفة حالة أحد أجهزة الإدخال ... مثل الكيبورد أو الماوس ... وكما كنا نستخدم KeyDown أو KeyPress بالنسبة للكيبورد فسنستخدم Direct Input كما استخدمناهما ... بل قد نجده أكثر سهولة :
وكائن دايركت إنبت كغيره من كائنات دايركت إكس يحتاج للتعريف و الإنشاء ...
يستخدم كائن دايركت إنبت كائنين أو عنصرين في آداؤه وهما:
DirectInputDevice: وهو الكائن الموكل بتعريف نوع جهاز الإدخال من ماوس أو كيبورد..
DiKeyBoardState: وهو كائن يتعرف على الزر المضغوط الآن وهو من اسمه نعرف أنه يعمل من الكيبورد ...

تعال الآن نعلن عن الكائنات السابقة :


كود:
:
Dim Dx As DirectX7
Dim Di As DirectInput
Dim Didev As DirectInputDevice
Dim DiKey As DIKEYBOARDSTATE
والآن سنقوم بتعريف الكائنات السابقة لنستطيع التعامل مع الكيبورد :


Set Dx = New DirectX7
Set Di = Dx.DirectInputCreate()
Set Didev = Di.CreateDevice("guid_syskeyboard")
Didev.SetCommonDataFormat DIFORMAT_KEYBOARD
Didev.SetCooperativeLevel Me.hWnd, _ DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND
Didev.Acquire


الفأرة

للتعامل مع الماوس هناك أربعة أشياء يجب معرفتها ...
1- موقع المؤشر على المحور X
2- موقع المؤشر على المحور Y
3- موقع المؤشر على المحور Z
4- معرفة الزر المضغوط هل هو الأيمرن أم الأيسر ...
وكل ذلك يتيحه لك دايركت إنبت بسهولة ورفق ... تعال نبدأ فورا في تعريف وانشاء الكائنات الرئيسية :
كود:
:
'التعريف
Dim Dx As DirectX7
Dim Di As DirectInput
Dim Didev As DirectInputDevice
Dim DiMouse As DIMOUSESTATE
Private Sub Form_Load()
'الإنشاء
Set Dx = New DirectX7
Set Di = Dx.DirectInputCreate()
Set Didev = Di.CreateDevice("guid_sysMouse")
Didev.SetCommonDataFormat DIFORMAT_MOUSE
Didev.SetCooperativeLevel Me.hWnd, DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND
Didev.Acquire
Me.Show
'الحلقة التكرارية
Do
DoEvents
GetMouseState
Loop
End Sub

Sub GetMouseState()
'معرفة حالة الماوس
Didev.GetDeviceStateMouse DiMouse
If DiMouse.buttons(0) Then _
Me.Caption = " Left Button"
If DiMouse.buttons(1) Then _
Me.Caption = " Right Button"
End Sub



لوحة المفاتيح

في هذا الفصل سنتعلم كيف نستخدم كائن دايركت انبت مع KeyBoard ... وفي هذا سنستخدم كائنين وهما :
Didev و DiKey ...
سنقوم الآن بعمل مثالا كالتالي :
1- عند الضغط على الزر الأيمن تتحرك الفورمة جهة اليمين..
2- عند الضغط على الزر الأيسر تتحرك الفورمة جهة اليسار..
3- عند الضغط على الزر الأعلى تتحرك الفورمة لأعلى..
4- عند الضغط على الزر الأسفل تتحرك الفورمة لأسفل..
5- عند الضغط على زر Ctrl اللأيسر تتم زيادة قيمة Height للفورمة..
6- عند الضغط على زر Ctrl الأيمن يتم تقليل قيمة Height للفورمة..
7- عند الضغط على Escape ينتهي البرنامج ...







أولا في الإجراء علينا انشاء مقطع برمجي Sub يقوم بالتعامل مع أزرار الكيبورد ... وهذا المقطع يكون شكله كالتالي :
كود:
Sub GetKeyState()
Didev.GetDeviceStateKeyboard DiKey
'التعامل مع حالات الأزرار
If DiKey.Key(DIK_ESCAPE) Then End
If DiKey.Key(DIK_LEFT) Then Me.Left = Me.Left - 20
If DiKey.Key(DIK_RIGHT) Then Me.Left = Me.Left + 20
If DiKey.Key(DIK_UP) Then Me.Top = Me.Top - 20
If DiKey.Key(DIK_DOWN) Then Me.Top = Me.Top + 20
If DiKey.Key(DIK_LCONTROL) Then Me.Height = Me.Height + 1
If DiKey.Key(DIK_RCONTROL) Then Me.Height = Me.Height - 1
End Sub

ثم نذهب للإجراء Form_Load ونكتب في التالي
Private Sub Form_Load()
Set Dx = New DirectX7
Set Di = Dx.DirectInputCreate()
Set Didev = Di.CreateDevice("guid_syskeyboard")
Didev.SetCommonDataFormat DIFORMAT_KEYBOARD
Didev.SetCooperativeLevel Me.hWnd, DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND
Didev.Acquire
Me.Show
Do
DoEvents
GetKeyState
Loop
End Sub



ولم يبق سور معرفة أسماء الأزرار بصيغة Dik_KeyName .. و هي في هذا الجدول :
كود:
:
Note Constant
DIK_ESCAPE
On main keyboard DIK_1
On main keyboard DIK_2
On main keyboard DIK_3
On main keyboard DIK_4
On main keyboard DIK_5
On main keyboard DIK_6
On main keyboard DIK_7
On main keyboard DIK_8
On main keyboard DIK_9
On main keyboard DIK_0
On main keyboard DIK_MINUS
On main keyboard DIK_EQUALS
BACKSPACE DIK_BACK
DIK_TAB
DIK_Q
DIK_W
DIK_E
DIK_R
DIK_T
DIK_Y
DIK_U
DIK_I
DIK_O
DIK_P
[ DIK_LBRACKET
] DIK_RBRACKET
ENTER on main keyboard DIK_RETURN
Left CTRL DIK_LCONTROL
DIK_A
DIK_S
DIK_D
DIK_F
DIK_G
DIK_H
DIK_J
DIK_K
DIK_L
DIK_SEMICOLON
DIK_APOSTROPHE
Grave accent (`) DIK_GRAVE
Left SHIFT DIK_LSHIFT
DIK_BACKSLASH
DIK_Z
DIK_X
DIK_C
DIK_V
DIK_B
DIK_N
DIK_M
DIK_COMMA
On main keyboard DIK_PERIOD
Forward slash (/)on main keyboard DIK_SLASH
Right SHIFT DIK_RSHIFT
Asterisk on numeric keypad DIK_MULTIPLY
Left ALT DIK_LMENU
Spacebar DIK_SPACE
CAPS LOCK DIK_CAPITAL
DIK_F1
DIK_F2
DIK_F3
DIK_F4
DIK_F5
DIK_F6
DIK_F7
DIK_F8
DIK_F9
DIK_F10
DIK_NUMLOCK
SCROLL LOCK DIK_SCROLL
DIK_NUMPAD7
DIK_NUMPAD8
DIK_NUMPAD9
Hyphen (minus sign) on numeric keypad DIK_SUBTRACT
DIK_NUMPAD4
DIK_NUMPAD5
DIK_NUMPAD6
Plus sign on numeric keypad DIK_ADD
DIK_NUMPAD1
DIK_NUMPAD2
DIK_NUMPAD3
DIK_NUMPAD0
Period (decimal point) on numeric keypad DIK_DECIMAL
DIK_F11
DIK_F12
DIK_F13
DIK_F14
DIK_F15
On Japanese keyboard DIK_KANA
On Japanese keyboard DIK_CONVERT
On Japanese keyboard DIK_NOCONVERT
On Japanese keyboard DIK_YEN
On numeric keypad (NEC PC98) DIK_NUMPADEQUALS
On Japanese keyboard DIK_CIRCUMFLEX
On Japanese keyboard DIK_AT
On Japanese keyboard DIK_COLON
On Japanese keyboard DIK_UNDERLINE
On Japanese keyboard DIK_KANJI
On Japanese keyboard DIK_STOP
On Japanese keyboard DIK_AX
On Japanese keyboard DIK_UNLABELED
DIK_NUMPADENTER
Right CTRL key DIK_RCONTROL
Comma on NEC PC98 numeric keypad DIK_NUMPADCOMMA
Forward slash (/)on numeric keypad DIK_DIVIDE
DIK_SYSRQ
Right ALT DIK_RMENU
DIK_HOME
Up arrow DIK_UP
PAGE UP DIK_PRIOR
Left arrow DIK_LEFT
Right arrow DIK_RIGHT
DIK_END
Down arrow DIK_DOWN
PAGE DOWN DIK_NEXT
DIK_INSERT
DIK_DELETE
Left Windows key DIK_LWIN
Right Windows key DIK_RWIN
Application key DIK_APPS
DIK_PAUSE
ما هو دايركت درو


ما هو دايركت درو


دايركت درو هو ما يتحكم في كل ما تراه أمامك على الشاشة ... من اضاءة وألوان ورسومات ...الخ
ومن المعروف أنك يمكنك أن تتحكم في كل ماسبق ذكره بدون دايركت درو وباستخدام بعض دوال Api ... ولكن دايركت درو يسهل هذه العملية كثيرا ... ويجعل دوال Api مجموعة من السطور الطويلة غير المفهومة المملة ... ولذا وجب التحويل لدايركت درو ...
دايركت درو عبارة عن مجموعة من الدوال التي تدخل مباشرة على برامج التحكم في أجهزة العرض ... محولات العرض Display Hardware مع دعم كامل للتعامل مع واجهات الرسوميات Graphic device Interface أو GDI..
دايركت درو هو الواجهة المثالية لبرمجة برامج الـ Graphics ولبرمجة الألعاب ... وهو يدعم التحكم في طريقة وعمق العرض ... كذلك في مساحة النافذة هل هي Full-Screen-Mode أم Windowed-Mode ...
دايركت درو يقوم بتجريد طبقة جهاز العرض HAL لتتمكن من التعامل بدعم كامل من جهاز العرض .
دايركت درو يسمح لك ببرمجة تطبيقات ثلاثية الأبعاد..
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
شرح مفصل لبرمجة ال direct x وتصميم الالعاب باستخدام الفيجوال بيسك 6
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» قوانين هامه في الالعاب>> نرجوا الالتزام ب&

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات احلام عمرنا :: منتديات البرامج :: برامج أجهزة الكمبيوتر :: قسم البرمجة-
انتقل الى: