برامج

دورة تصميم الالعاب بالفجوال بيسيك حصريا على برامج نت [الأرشيف] - برامج نت

المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : دورة تصميم الالعاب بالفجوال بيسيك حصريا على برامج نت


قرصان البرامج
05-18-2006, 04:14 PM
بسم الله نبدا هذه السلسلة من دروس تصميم الالعاب بالفجوال بيسيك مع قرصان البرامج
اقدم لكم اليوم لعبة بسيطة قمت بتصميمها
واليكم الطريقة- افتح برنامج الفجوال بيسيك
-اختر EXE
-زد من حجم الفورم
-ضع في الفورم بوسطة الاداة LABEL ستة مربعات
-تم ضع ستة من الاداةTIMER
بحيت يكون LABEL1 امام TIMER1
وهكدا

http://www.arab7.com/up/file/1147963482746.jpg

-حدد جميع ادوات TIMER
-غير INTERVAL
الى 120
http://www.arab7.com/up/file/1147963651137.jpg

الان سنقوم بادخال الاكواد الى TIMER

http://www.arab7.com/up/file/1147963562137.jpg
-اضغط على TIMER1
مرتين وعندما تظهر لك شاشة الاكواد ادخل الكود التالي
Label1.Left = Val(Label1.Left) + 500
If Label1.Left > 6400 Then
Label1.Left = 240
end if

TIMER2 وهدا بالنسبة ل
Label2.Left = Val(Label2.Left) + 400
If Label1.Left > 6400 Then
Label2.Left = 240
end if

TIMER3 وهدا بالنسبة ل
Label3.Left = Val(Label3.Left) + 200
If Label3.Left > 6400 Then
Label3.Left = 240
end if

TIMER4 وهدا بالنسبة ل
Label4.Left = Val(Label4.Left) + 1000
If Label4.Left > 6400 Then
Label4.Left = 240
end if

TIMER5 وهدا بالنسبة ل
Label5.Left = Val(Label5.Left) + 600
If Label5.Left > 6400 Then
Label5.Left = 240
end if

TIMER6 وهدا بالنسبة ل
Label6.Left = Val(Label6.Left) + 300
If Label6.Left > 6400 Then
Label6.Left = 240
end if

الان ساقوم بشرح هذه الاكواد
ساخد الكود الاول كمتال
Label1.Left = Val(Label1.Left) + 500
LABEL1 هذا الكود يعني ان مكان تواجد
على المحور الافقي يساوي مكان تواجده الان اضافة الى 200 اي انه سيستمر في الحركة الى مالانهاية فعندما يصل الى نقطة ما يتقدم ب500
وهكدا
اما السطر التاني من الكود
If Label1.Left > 6400 Then
Label1.Left = 240
end if
LABEL1 فيعني ان المربع الاسود في الصورة اي
يعود الى مكانه الاول 240 عندما يتجاوز 6400

الان قم بتجربة النتيجة بالضغط على F5

http://www.arab7.com/up/file/1147963786331.jpg

ستلاحظ ان المربعات تقوم بالحركة من اليسار الى اليمين وبسرعات مختلفة وهدا الاختلاف راجع الى اختلاف القيمة التي يتقدم بها اى 400 او500 او 1000

-ما سنقوم به الان هو ادخال كود الى المربعات السوداء حيت انه عند النقر عليها ستقوم بالتوقف
LABEL1 اضغط مرتين على
ادخل الكود التالي
Timer1.Enabled = False

LABEL2 وهدا بالنسبة ل
Timer2.Enabled = False

LABEL2 وهدا بالنسبة ل
Timer2.Enabled = False

LABEL3 وهدا بالنسبة ل
Timer3.Enabled = False

LABEL4 وهدا بالنسبة ل
Timer4.Enabled = False

LABEL5 وهدا بالنسبة ل
Timer5.Enabled = False

LABEL6 وهدا بالنسبة ل
Timer6.Enabled = False

http://www.arab7.com/up/file/1147963834455.jpg

ساشرح الان هد الكود واخد متال عليه LABEL1
Timer1.Enabled = False
هذا الكود يعني انه عند الضغط على LABEL1
سيتم ايقاف تشغيل TIMER1
وهذا يعني ايقاف حركة المربع الاسود
-الان سنوم باضافة زر للتحكم باللعبة اي ان اللعبة لن تبدء بمجرد فتحها ولكن بعد الضغط على الزر
اخترcommandbotton
الصقه في الفورم وسمه play

http://www.arab7.com/up/file/1147964011213.jpg

الان هذا الزر هو الدي يتحكم في الحركة الخاصة بالمربعات السوداء
ادن الان سنقوم بمنع حركته بمجرد فتح اللعبة
timer قم بتحديد كل
ومن الخاصيةenabled اختر false
لنعد الان الى الزر اضغط عليه مرتين والصق فيه الكود التالي
Timer1.Enabled = True
Timer2.Enabled = True
Timer3.Enabled = True
Timer4.Enabled = True
Timer5.Enabled = True
Timer6.Enabled = True

http://www.arab7.com/up/file/1147964859689.jpg

هدف هدا الكود هو تشغيلtimer التي اوقفنا عملها التلقائي عند فتح اللعبة
قم بتجربة اللعبة بالضغط علىf5
ستلاحظ ان المربعات السوداء لا تتحرك الا بعد الضغط على play

11-الان سنضيف شريط الزمن
هدا الشريط سيقوم بالتناقص مع مرور الوقت
اختر الاداةlabel ارسم بها شريطا وغير لونه الى الاصفر
للتحكم بالشريط تم قم باضافة اداةtimer

http://www.arab7.com/up/file/1147964213417.jpg

انقر علىtimer الدي اضفته والصق به الكود التالي
Private Sub Timer7_Timer()
Label7.Width = Val(Label7.Width) - 5
End Sub
هدا الكود يقوم بانقاص طول الشريط تدريجيا
ندهب الان الى الزرplay ونضيف اليه كود تفعيل Timer7
Timer7.Enabled = True


http://www.arab7.com/up/file/1147964286666.jpg

اضغط علىf5

ستلاحظ ان الشريط بدا بالتناقص حتى يختفي
علينا الان ان نضيف الكود الدي يعيد الشريط الى حالته عند الضغط على play
نقر مرتين على play
تم اضف الكود التالي
Label7.Width = 5175
ملاحظة غير الرقم 5175 بطول الشريط الدي قمة بتحديده
بقي الان امامنا ادخال الكود الدي يبين النتيجة هل فوز او خسارة
حيث ستظهر النتيجة لعمل دلك قم بادخال اداةlabel
للتحكم بالكود قم بادخال اداةtimer
حددtimer 8واجعل interval =true
http://www.arab7.com/up/file/1147964374937.jpg

انقر الان مرتين عليه وادخل الكود التالي

If Label7.Width > 15 And Timer1.Enabled = True And Timer2.Enabled = True And Timer3.Enabled = True And Timer4.Enabled = True And Timer5.Enabled = True And Timer6.Enabled = True Then
Label8.Caption = "good"
Else
Label8.Caption = "bad"
End If

http://www.arab7.com/up/file/1147964859689.jpg

ولاحظ النتيجة جرب اللعبة عن طريق الضغط على f5


http://www.arab7.com/up/file/1147964420272.jpg
http://www.arab7.com/up/file/1147964459331.jpg


يمكنك تحميل اللعبة والملف المفتوح من المرفقات

&&&المطيري&&&
05-19-2006, 12:28 AM
تسلم يا الغالي على الفكره الرائعه

جاري التجربه

.

fatima_ak
05-19-2006, 08:55 AM
فكرة حلوة نحن معك
تابع...

zx1xz
05-19-2006, 09:59 AM
والله محتاجين مثل الافكار الحلوه الذكيه
الله يوفقك

عبد الكريم جبر
05-19-2006, 12:44 PM
السلام عليكم ورحمة الله وبركاته
جزاك الله خيرا اخي على الطريقة الجميلة
واتمنى لك التوفيق من كل قلبي

cyberhoox
05-19-2006, 01:22 PM
مشكووووووووووووووووووووووووووووووووووووووووووووووو ووووووووووووووووور

Need Help
05-20-2006, 11:31 PM
السلام عليكم
يعطيك العافية اخوي
انا سويت الخطوات الاولى بس ما شفت اللي انت تقول عليه
:confused:

قرصان البرامج
05-21-2006, 12:52 AM
اولا مشكور اخي على تجربة اللعبة
انت قمت بعمل جيد لكنك نسيت تغير interval الخاص ب timer من 0 الى 10
فعندما يكون interval يساوي صفر يعني انه ليست لديه قيمة زمنية يعمل عليها
ارجو ان اكون قد اوضحت المشكل
وانا جاهز لاي استفسار
ومشكور على المرور

قرصان البرامج
05-21-2006, 12:57 AM
وشي اخر يا اخي
نسيت ان تغلق if
فقد قمت بكتابة الكود كالتالي
Label1.Left = Val(Label1.Left) + 500
If Label1.Left > 6400 Then
Label1.Left = 240
ويجب ان يكتب كالتالي
Label1.Left = Val(Label1.Left) + 500
If Label1.Left > 6400 Then
Label1.Left = 240
end if
وشكرا

Need Help
05-21-2006, 01:37 AM
الله يعطيك العافية
صراحة انا قمت بنسخ الاكود
و ما اعرف شلون تكتب :$
بس يا ريت توضحلي اكثر عن الخلل

بالنسبة للTimer1

Private Sub Timer1_Timer()
Label1.Left = Val(Label1.Left) + 500
If Label1.Left > 6400 Then
Label1.Left = 240
End Sub

هل اغيرها ل
Label1.Left = Val(Label1.Left) + 500
If Label1.Left > 6400 Then
Label1.Left = 240
end if

قرصان البرامج
05-22-2006, 02:56 PM
السلام عليكم
يجب كتابة END IF قبل END SUB
حيت يصبح الكود كالتالي
Private Sub Timer1_Timer()
Label1.Left = Val(Label1.Left) + 500
If Label1.Left > 6400 Then
Label1.Left = 240
END IF
End Sub

وعفوا على التقصير

abo0od2009
01-20-2009, 12:40 AM
مشكور وما قصرة

pc_abdou
01-21-2009, 09:16 PM
merci beacoup pour ce grand travail