وياريت حضرتك تقولى ازاى اوسع الفراغات اللى هيمشى فيها حرف ال b
مع طبعا تقليل المساحة السوداء لان لما بوسع اللون البرتقالى باجى امشى فية وكانى موسعتوش
VB_Coder
منتظر ردك يا اخى
السلام عليكم
- هذه اللعبه بعد إضافة حواجز متحركه . وإذا أردت تكبير مساحة المسار . فلابد أن تغير قيم نقاط التقاطع لكل أداة بكتشر .
- تحياتي .
الف شكر لحضرتك ولمجهودك الجميل
وانا ف كود عاوز حضرتك تساعدنى فية علشان يكمل انا حاولت ف الاخر اعمل شرط لو مثلا Player لمس ال Shape يرجع تانى لنقطة بدايتة بس بيقولى ف حاجة غلط ف نقطة البداية
إقتباس :Dim t, b, l, r
Private Sub Timer1_Timer()
t = Shape1.Top
b = Shape1.Top + Shape1.Height
l = Shape1.Left
r = Shape1.Left + Shape1.Width
If (Player.Top >= Shape1 And Player.Top <= b And Player.Left >= l And Player.Left <= r) Then
Player.Top = 600
Player.Left = 250
End If
End Sub
المفروض ان دى نقطة بداية الصورة
Player.Top = 600
Player.Left = 250
لكن بيحصل اخطاء وبيحدد الخطا ف Player.Left = 250
ارجو المساعدة
شكرا
السلام عليكم
- هذا الكود بعد تعديله . بحث إذا لامس الـ Player أي جهة من جهات الShape يتم إرجاع الـ Player إلى نقطة البداية :
كود :
Private Sub Timer1_Timer()
Dim t, b, l, r As Integer
Dim t2, b2, l2, r2 As Integer
t = Shape1.Top
b = Shape1.Top + Shape1.Height
l = Shape1.Left
r = Shape1.Left + Shape1.Width
t2 = Player.Top
b2 = Player.Top + Player.Height
l2 = Player.Left
r2 = Player.Left + Player.Width
If (t2 >= t And t2 <= b) And (l2 >= l And l2 <= r) Then
Player.Top = 600
Player.Left = 250
ElseIf (b2 >= t And b2 <= b) And (r2 >= l And r2 <= r) Then
Player.Top = 600
Player.Left = 250
End If
End Sub
- تحياتي .
كدة بقت تمام اوى وكود التصادم والرجوع لنقطة البداية بقى اسهل من نقط التقاطع
طيب حضرتك انا دلوقت بحاول اسهل ع نفسى الاكواد وبردة اكون فاهمها
يعنى انا عملت كود لحركة الصورة بين نقطتين محددتين
الكود
إقتباس :Private Sub Timer1_Timer()
If Picture1.Top <= 360 Then
Picture1.Top = 2160
Else
Picture1.Top = Picture1.Top - 50
End If
End Sub
لما انا جربت الكود دا لقيت الصورة بتروح لل top المطلوب وبترجع لنقطة بدايتها علطول مش بعمل حركة عكسية وبتكرر نفسها عادى يعنى
لكن انا عاوز مثلا اعدل ع الكود لو ينفع انى مثلا اعملها زى ما حضرتك عملت الحركة ف Vb_Game3
الصورة تتحرك وتعكس حركتها وترجع بس بنفس طريقة الاكواد لو امكن
شكرا
السلام عليكم
- المتغير النصي Direction خاص بإتجاه الحركة إما للأسفل او للأعلى حيث تكون قيمتة إما Down أسفل أو Up اعلى . حيث أننا عرفنا هذا المتغير على أنه من النوع الذي يحتفظ بقيمته ولا يفقدها Static لأنك لو عرفته بالطريقة العادية Dim فسيفقد قيمته في كل مره يشتغل فيها التايمر لذلك نحن نريده أن يحتفظ بقيمته حتى تظل الصورة تتحرك في نفس الإتجاه إلى أن يتم تغير قيمة المتغير للعكس عند ملامسه النقطة الاخرى . و الجزء من الكود الذي حددته في ردك الاخير هو لوضع قيمة في المتغيرDirection حيث أنه عند تشغيل البرنامج تكون قيمته فارغه ولن تتحرك الصورة لذلك وضعت الجزء هذا حيث يتم تنفيذه مره واحده فقط .
استاذى ومعلمى الفاضل

بشكرا جدا جدا
عندى استفسار بعيدا عن البرنامج اللى بعملة
مش لما انا مثلا يكون 10 بيكتشر بوكس وسمتهم كلهم باسم p1
مش المفروض يتعمل مصفوفة واللى يطبق ع واحدة منهم يطبق ع الكل ؟
لية لما اعمل كدة واجى مثلا اطبق كود من اللى حضرتك عاملهم اجى اكتب p1.top ميبقاش موجود بيبقى موجود 4 خيارات بس
items
lboud
ubound والاختيار الاخير مش فاكرة
وبالطريقة دى مقدرش انفذ وانجز ف الاكواد بتاعتى
اية المشكلة هنا بالظبط
السلام عليكم