بسم الله الرحمن الرحيم
السلام عليكم....
التحريك :
السؤال الرئيسي والذي سنشتق منه جميع الاسئلة :
كيف تتحرك الشخصية من مكان الى اخر ؟!!!
كنا قد حركناها وذلك من خلال كتابة قيم في مربع النص ، ولكن انا لا اريد ذلك ... اريد ان تتحرك بشكل متزايد....
نفعل ذلك من خلال هذا الكود :
كود:
Picture1.Left = Picture1.Left + 100
فعندما ينقر المستخدم على زر امر (command) مثلاً تتحرك الشخصية مقدار 100 ....فهذا الكود مشابه لـ :
عدد التفاحات = عدد التفاحات الحالية + 100
تطبيق 1-1 : افتح المشروع السابق ثم ضع هذا الكود بدلاً من الكود الحالي :
كود:
Private Sub Command1_Click()
Picture1.Left = Picture1.Left + 100
End Sub
Private Sub Form_Load()
Text1.Text = "الطريقة"
Text2.Text = "الجديدة"
End Sub
ولاكن نحن في برمجة الالعاب لا نتعامل مع زر كوماند . فكيف نتفاعل مع الكيبورد والماوس ؟
الكيبورد :
هنالك ثلاث احداث(Events) يقدمها VB ... ما يهنا هو اثنان منها
مثال : اذا ضغط المستخدم على زر <--- في الكيبورد لكي تتحرك الشخصية لليمين مدة 1 دقيقة ثم تركه فكيف سنتعامل مع هذا المدخل.
_________
الحدث Keydown :
كود:
Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
End Sub
عندما يضغط المستخدم على الكيبورد فإن هذا الحدث يخزن في ذاكرة الجهاز رقم هذا الزر الذي ضغطناه في المتغير KeyCode
فمثلا عندما انقر على مسافه (Space) فإن Keycode = 16 وعندما ينقر على زر انتر Enter فإن Keycode = 13 وهكذا
هل انا مضطر الى حفظ هذا الارقام ؟ :غضب:
- بالطبع لا ...تستطيع كتابة:
لمعرة رقم الزر الذي ضغطته
.
اذا استمريت في الضغط على زر معين..ماذا يحدث ؟
- ستستمر حركة الشخصية حتى ترفع الزر (وهذا هو المطلوب)
ولكن انا اريد ان يفعلها مرة واحدة .
- هنالك عدة طرق ذكية منها KeyUP وسنتطرق لها بعد قليل...
في المثال السابق حركنا الشخصية من خلال Command والان سنحركها بواسطة KeyDown ....
تطبيق (1-2) :
1- اضف مشروع جديد واحفظ بإسم 1-2
2- اضف مربع صورة وضع داخلة صورة ما
3- اكتب هذا الكود :
كود:
Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
Print KeyCode
Select Case KeyCode
Case 39
Picture1.Left = Picture1.Left + 100
Case 37
Picture1.Left = Picture1.Left - 100
End Select
End Sub
_______________
الحدث KeyUP :
نفس طريقة عمل السابق ولاكن يشتغل هذا الحدث اذا رفع المستخدم عن زر ما....
مثال : ضغط المستخدم على زر مسافة مدة ساعة كاملة ثم تركه ...
سيتحقق فقط بعد نهاية الساعة لان المستخدم رفع يده عن الزر(من اسم الحدث)
_______________
احداث الماوس ..سأتحدث عنها لاحقاً
واجب
ادري ان محد حاله) : حرك الشخصية بحيث اذا ضغط المستخدم على حرف n تتحرك بشكل مائل (بإتجاه الاعلى واليمين بنفس الوقت ) .
والان لقد تعلمنا كيف نحرك شخصية بإستخدام Keycode ولكن هل سيظل كل شيء جامداً هكذا حتى نقوم بتحريكه ...هنا يأتي العنصر Timer .....
سنعود بعد قليــــــل
تحياتي