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

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

السلام عليكم
الدرس القادم بعد دقائق سيكون اضافة شكل جديد كى يتصادم الدب معه  وفى هذا الدرس لن نحتاج صوره الدب صنغيرها الى مربع كى تظهر حدود الصوره ونتأكد من  صحة التصادم
اراكم بعد لحظات

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

الدرس الثانى : التصادم


السلام عليكمفى هذا الدرس سنتعلم احدى الطرق لكشف التصادم  عن طريق الأحداثيات
بعد ان تغير صورة الدب الى مربع 50 * 50  اضف صندوق صور اخر  وضع فيه صورة مربع اخر بلون مختلف وجعل موقع الصندوق الأول  

X = 500 Y = 300

والصندوق الثانى
X = 300  Y = 300

انشئ اجراء جديد  وسمه  right_واكتب فيه الأتى

Private Sub right_()  
  If PictureBox1.Left + PictureBox1.Width = PictureBox2.Left Then Exit Sub

        PictureBox1.Left += 10
        If PictureBox1.Left > 750 Then PictureBox1.Left = 750      
End Sub

واجعل اجراء الضغط على مفتاح RIGHT كما يلى


Case Keys.Right
    right_()

ثم نفذ البرنامج وحاول ان تخترق المربع الثانى من جهة اليمن وخبرونى بما لاحظتم هى الوقت يمر بسرعة

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

السلام عليكم
اخوانى هذا الدرس من اصعب الأشياء فى برمجة الألعاب فأرجو التركيز والمتابعة والتواصل لأن الذى لن يفهم جزء لن يفهم كل ما بعده انا منتظر تجربة الدرس

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

تم حل الواجب 😄


Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyCode
            Case Keys.Right
                PictureBox1.Left += 10
                If PictureBox1.Left > 700 Then PictureBox1.Left = 700
            Case Keys.Left
                PictureBox1.Left -= 10
                If PictureBox1.Left < 100 Then PictureBox1.Left = 100
            Case Keys.Up
                PictureBox1.Top -= 10
                If PictureBox1.Top < 100 Then PictureBox1.Top = 100
            Case Keys.Down
                PictureBox1.Top += 10
                If PictureBox1.Top > 500 Then PictureBox1.Top = 500
        End Select
 
بالنسبة للدرس الثاني سأبدأ دراسته الآن

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

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

بتاريخ 22/جمادى الأولى/1432 10:35 م، قطب السيد فتحى السيد حاجبيه بشدة وهو يقول:

الدرس الثانى : التصادم


السلام عليكمفى هذا الدرس سنتعلم احدى الطرق لكشف التصادم  عن طريق الأحداثيات
بعد ان تغير صورة الدب الى مربع 50 * 50  اضف صندوق صور اخر  وضع فيه صورة مربع اخر بلون مختلف وجعل موقع الصندوق الأول  

X = 500 Y = 300

والصندوق الثانى
X = 300  Y = 300

انشئ اجراء جديد  وسمه  right_واكتب فيه الأتى

Private Sub right_()  
  If PictureBox1.Left + PictureBox1.Width = PictureBox2.Left Then Exit Sub

        PictureBox1.Left += 10
        If PictureBox1.Left > 750 Then PictureBox1.Left = 750      
End Sub

واجعل اجراء الضغط على مفتاح RIGHT كما يلى


Case Keys.Right
    right_()

ثم نفذ البرنامج وحاول ان تخترق المربع الثانى من جهة اليمن وخبرونى بما لاحظتم هى الوقت يمر بسرعة

كيف أنشا إجراء جديد؟

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

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

في 25 ابريل 2011 10:37 م، عقد أسامة السلمان حاجبيه بتفكير وقال:

كيف أنشا إجراء جديد؟
 قبل كلمة  End Classاكتب   

Private Sub right_


ثم انتر   Enter

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

وفي 22/جمادى الأولى/1432 10:35 م، قال السيد فتحى السيد متحمساً:

واجعل اجراء الضغط على مفتاح RIGHT كما يلىCase Keys.Right right_()ثم نفذ البرنامج وحاول ان تخترق المربع الثانى من جهة اليمن وخبرونى بما لاحظتم هى الوقت يمر بسرعة
 
هل يمكنك شرح كيفية أداء هذه الخطوة بالتفصيل وشكرا

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

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

سوف اشرح لك جملة select case
معنى هذه الجمله  " اختار او اختبر حالة"
ويجب وضع متغير  لة اكثر من قيمة بعد هذه الجمله وفى مثالنا نختبر حالة لوحة المفاتيح فكتبنا

Select Case e.KeyCode

وتعنى اختبر حالة المفاتيح,

وبعد ان تكتب هذه الجمله وتضغط انتر تكتب جمة end case تلقائياًليصبح شكل الكود هكذا
 Select Case e.KeyCode 






 End Select
وبين هاتان الجملتان  نكتب  الحالات التي نريد تنفيذ شيء عند تحققها
نكتب case   فتنفتح قائمة بكل حالات المتغير الذى نتحقق من حالته
فعندما يكون الكود هكذا



 Select Case e.KeyCode
          Case Keys.Right


End Select


كل ما يكتب بعد جملة Case Keys.Right سينفذ عند الضغط على سهم يمين وهكذا نفس الشىء مع حالة اخرى للمفاتيح ولعل هذه  
الصورة توضح اكثر
 



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

فكل ما عملناه نقلنا الكود الذى كان ينفذ عند الضغط على مفتاح السهم الى اجراء فرعى نستدعية عند حدث الضغط على المفتاح
 
اما كيفية استدعاء اى اجراء فرعى تكون بكتبة اسم الاجراء فى اى اجراء او حدث اخر
 
وفعلنا هذا لأن الكود سوف يكبر ونريد ان ننظمه
 
اما لماذا لم افعل هذا من الأول فهذا لسبب تعليمي وهو معرفة الإجراءات الفرعية وكيفية استدعاءها

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

تم التطبيق
الشي الملاحظ ان الصوره التي اقوم بتحريكها لم تستطيع المرور بالصوره الاخري . ليس هذا فقط بل انها لم تستطع المرور بالاحداثيات التي فوقها ولا تحتها بالنسبه للمحورy

ارجو شرح هذا السطر


If PictureBox1.Left + PictureBox1.Width = PictureBox2.Left Then Exit Sub

 ما الفائده من العمليه الحسابيه +

وما فائده exit sub  التي في الاخير