تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الحلقة صفر من السلسلة 167 للبرمجة
#1
كاتب الموضوع : FlyToAbd

نشرت هذه الحلقة بعد الحلقة الاولى في محاولة لتبسيط البداية للسلسلة

البرنامج عبارة عن لعبة بسيطة قابلة للتطوير

اضف زر باسم BtnBall وزر اخر باسم btnStand ومؤقت باسم Timer1 والصق الكود التالي في نموذج في مشروع جديد وشغل البرنامج

انتبه لحركة الكرة وحدود اصطدامها وصدها بالمضرب ثم اتركها بدون المضرب ستعيد اللعبة من جديد

ارجو من الزملاء اذا الكود يحتاج لشرح ان يبينوا ذلك وانا مستعد

كما وارجو التعليق والرد اذا يوجد من يتابع معي


كود :
Public Class Form1
' Insert Button with name: BtnBall
' Insert Button with name: btnStand
' Insert Timer with name: Timer1

Private Grid As Integer = 20
Private GameSize As New Size(24, 20)
Private StandWidth As Integer = 4

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Height = 1.2 * GameSize.Height * Grid
Me.Width = GameSize.Width * Grid

With btnStand
.Text = ""
.Height = Grid
.Width = StandWidth * Grid
.Top = GameSize.Height * Grid
.Left = Grid * (GameSize.Width / 2 - StandWidth / 2)
End With
With btnBall
.Text = ""
.Height = Grid
.Width = Grid
.Top = 10 * Grid
.Left = 5 * Grid
End With
With Timer1
.Interval = 200
.Enabled = True
End With
End Sub

Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
btnStand.Left = e.X - btnStand.Width / 2
End Sub

Private BallDirection As New Point(-1, -1)

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
With btnBall
.Left += BallDirection.X * Grid / 2
.Top += BallDirection.Y * Grid / 2

If .Left + Grid / 2 <= 0 Then BallDirection.X *= -1
If .Left + .Width + Grid / 2 >= Me.Width Then BallDirection.X *= -1

If .Top <= 0 Then BallDirection.Y *= -1
If .Top + .Height >= (GameSize.Height * Grid) Then
If .Left > btnStand.Left And (.Left + .Width) < (btnStand.Left + btnStand.Width) Then
BallDirection.Y *= -1
ElseIf .Top > Me.Height Then
.Left = GameSize.Width / 2 * Grid
.Top = 0
BallDirection = New Point(1, 1)
End If
End If
End With
End Sub
End Class
مع تحياتي
عبدالله العبيدي
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الحلقة السابعة من السلسلة 167- استخراج جميع معلومات الجهاز RaggiTech 5 4,506 29-06-21, 05:29 AM
آخر رد: kebboud
  برامج 167 للبرمجة الحلقة الاولى RaggiTech 0 1,773 03-10-12, 01:38 AM
آخر رد: RaggiTech
  الحلقة العاشرة من السلسلة 167 - اضافة المخطط (Chart) الى التقرير RaggiTech 0 2,010 02-10-12, 04:31 PM
آخر رد: RaggiTech
  الحلقة السادسة من السلسلة 167 (المبلغ كتابتا) RaggiTech 0 1,857 02-10-12, 04:29 PM
آخر رد: RaggiTech
  الحلقة الرابعة من السلسلة 167 - حل مشكلة Socket مع مثال شات RaggiTech 0 2,176 02-10-12, 04:24 PM
آخر رد: RaggiTech
  الحلقة الخامسة من السلسلة 167 كود برنامج مسنجر كامل على الشبكة المحلية RaggiTech 0 1,902 02-10-12, 04:18 PM
آخر رد: RaggiTech
  الحلقة الثامنة من السلسلة 167- دارسة في الألوان RaggiTech 0 1,889 02-10-12, 04:17 PM
آخر رد: RaggiTech
  الحلقة التاسعة من السلسلة 167 حفظ الصور في تطبيق قواعد بيانات RaggiTech 0 2,207 02-10-12, 04:15 PM
آخر رد: RaggiTech
  الحلقة 2 من السلسلة 167 RaggiTech 7 3,252 02-10-12, 04:11 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم