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

مشاهدة النسخة كاملة : [درس] دروس في الدارك بيسيك الجزء الثالث



snake_x86
18-09-2006, 03:12 PM
دروس في الدارك بيسيك الجزء الثالث




مع Snake_x86




هل قرأت الدروس السابقة؟



====الدرس الأول==== (http://www.montada.com/showthread.php?t=493085)



====الدرس الثاني==== (http://www.montada.com/showthread.php?t=493599)


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


في الدرس السابق تكلمت عن اهم الادوات اللتي تبني فيها اللعبة
و الان ساتكلم عن اداة او عملية لم اتكلم عنها و هي من اهمهم و اللتي هي:
Do
….
Loop
بالمختصر المفيد هذه العملية عند تشغيلها ستقوم بتشغيل الاوامر اللتي تحويها
اي ما بين Do و Loop الى ما لا نهاية!
و يمكن الخروج منها بـ Goto (ذكرتها بالدرس الماضي)

و الان سأدخل بالموضوع و هو هيكل اللعبة
يمكن تصميم هيكل اللعبة بطرق لا حد لها حسب متطلبات اللعبة
و ساقوم بالتكلم عن الهيكل اللذي استخدمته بكهف الموت....

و ببساطة عبارة عن عدة اقسام:

1) الاعداد للعبة.
2) تعريف المتغيرات و تشمل المتغيرات العادية و المصفوفات و الانواع....
3) تحميل الوسائط المتعددة كالصور و الاصوات و المسيقى و الموديلات
4) التهيئة للدائرة اللعبة الرئيسية
5) دائرة اللعبة الرئيسية (سأتكلم عنها بالتفصيل)
6) الدوال اوالـ Functions

سأتكلم الان عن الدائرة الرئيسية و اللتي هي عبارة عن سلسلة اوامر و عمليات
تتحكم باللعبة كتحريك الشخصيات و كشف التصادم و العمليات الحسابية
و التحكم بالاصوات و الصور .... كل شيء
وهذه الدائرة هي قلب اللعبة .... وسميتها دائرة لان سلسلة الاوامر و العمليات هذه
عندما تنتهي ترجع الى اول السلسلة و تعاد هذه الاوامر....
و هنا عادة تستخدم ال do loop و يمكن استخدام while
لكن الاولى هي الشائعة في الدارك بيسيك
------------------------------------------------------------------------
و الان هيا بنا الى العملي
الان سنقوم بعمل برنامج بسيط عبارة عن مكعب يدور حول نفسه....

نبدأ بفتح مشروع جديد....
الان سنعد للبرنامج و انا ابدأ عادة بهذا الامر:
Sync on
و هذا امر ضروري حيث يمنع البرنامج من تحديث الشاشة اوتوماتيكياً
و تحديث الشاشة اقصد به ان يقوم كارت الفيديو بعمليات الرسم و ذلك يأخذ وقت
و لو كان ذالك عشوائي سيؤدي الى بطئ اللعبة
و يجب تحديث عند كل نهاية نهاية للأوامر اي بآخر الدائرة الرئيسية
عن طريق الأمر sync.

الآن الامر التالي هو التحكم بعدد عمليات التحديث او الرسم حيث اذا لم نحددها
ستصبح سرعة اللعبة تعمل بأقصى سرعة يستطيع الجهازتحملها مما يعني البطئ على الاجهزة البطيئة
و السرعةالجنونية على الاجهزة السريعة و ايضا ستؤثر العمليات اللتي يقوم بها
البرنامج في كل لفة (او نهاية دائرة)
و ستجدون الكثير من الالعاب المبرمجة بلغات البرمجة كالسي هكذا و هو خطأ شنيع!
و للتجنب ذلك نستخدم الأمر:
Sync rate 60
و بهذا الامر سنحد سرعة التحديث الى 60 صورة بالثانية و 60 هي المستخدمة عادة
يمكن استخدام 80 ايضا و ذلك يؤدي الى حركة انعم لكن بعض الشاشات قد لا تدعمها.
و الان الى الامر التالي واللذي هو
Autocam on
و اللذي يقوم به هذا الامر هو جعل الكاميرة تنظر الى آخر اوبجكت نقوم بتوريده الى
البرنامج او نقوم بصنعه و هذا الامر في هذا المثال غير ضروري لأنه افتراضي
لكنني وضعته لأشرحه .... لأنه مهم فبالالعاب المعقدة سيؤدي ان يكون هاذا الامر مفعل
الى مشاكل و لذلك نستخدم الامر autocam off و اللذي هو عكس autocam on
في الالعاب التي تحوي الكثيرمن الاوبجكتات لتجنب ذهاب الكاميرة الى الاوبجكت الجديد.

و الآن انتهينا من الاعدادات وسنبدأ لاعداد المكعب اولا يجب ان نصنعه
بالأمر
Make object cube 1 , 40
و سيقوم الدارك بيسيك بعمل اوبجكت عبارة عن مكعب و يعطيه رقم 1 و سيكون
طول كل ضلع 40, و من هنا أتكلم عن رقم الاوبجكت او الـ ID
و هو عبارة عن رقم يعطى لكل اوبجكت في الدارك بيسيك و لا يمكن ان يتشارك
اوبجكتان او اكثر في رقم واحد.

الان سنعد الاوبجكت واللذي هو المكعب و سأعطيه لون عشوائي....
اولا سأقوم بتكوين اللون العشوائي بالعملية التالية:

col# = rgb(rnd(255),rnd(255),rnd(255)) لاحظوالمتغير col# الرمز اللذي اخره يقول للبرنامج بان هاذا عبارة عن متغير عشري
او Float و يسمى احيانا Long

و بعد ذلك تأتي العملية rgb و وجود القوسين يعني ان هذه العملية سترجع قيمة
و هذه الاعملية تعطيها ثلاث ارقام من 0 الى 255 و كل منهم يرمز للون
الاول الاحمر و الثاني الاخضر و الثالث الازرق و سيتكون لون

و انا قمت بوضع ثلاث عمليات تعطي ارقام عشوائية (rnd) و هاذا الامر سيرجع
رقم عشوائي بين الصفر و العدد اللذي تعطيه اياه و في حالة الالوان 255

الان سنحصل على قيمة ترمز للون في المتغير col#
و الان سنطبق هذا اللون على المكعب
Color object 1 , col#
وهنا هذا الامر واضح الرقم واحد يرمز الى رقم الاوبجكت و المتغير يرمز للون

و الان الى الدائرة الرئيسية و اللتي هي في هذا المثال بسيطة
وساتكلم الان عن المطلوب من الدائرة.....
يجب ان يدور المكعب في كل لووب او دورة 0,5 الى اليمين
ثم يدور 0,5 درجة الى الاعلى
ثم نعطي البرنامج الامر بالقيام بعمليات الرسم




do



turn object right 1,0.5



pitch object up 1,0.5



sync



loop

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

المثال كامل:

sync on
sync rate 60
autocam on

make object cube 1,40
col# = rgb(rnd(255),rnd(255),rnd(255))
color object 1,col#

do
turn object right 1,0.5
pitch object up 1,0.5
sync
loop
يمكن نسخه الى الدارك بيسيك لتروا النتائج
و لا يحتاج الى ملفات اخرى.....

سأكتفي الان بهذا الدرس و في الدرس القادم سأقوم بشرح مثال معقد يتوي على عمليات
For next

باز يطير
18-09-2006, 03:20 PM
السلام عليكم ورحمة الله وبركاته

شكراً ليك اخوي الله يعطيك العافية ويشرفني اني اكون اول واحد يرد على موضوعك

وانا كنت احسب انك وقفت الدروس لاكني كنت ميقن انك لن تتوقف

وانا كنت مستني اي كلمة منك عن الدارك بيسك

شكراً ليك اخوي يعطيك الف عافية

snake_x86
18-09-2006, 03:28 PM
هلا باز يطير و العفوا منك
و بكمل الدروس بإذن الله

PrinceOfSorrow
18-09-2006, 03:29 PM
شكرا على المجهود :)
وجاري أسترجاع درس الاول + الثاني
علشان مانسى اي نقطه مهمة ;)
ومنتظرين درس الرابع :D

nash2
18-09-2006, 03:35 PM
اشكرك يا أيها الافعى الشرس:smirk: في تصميم دروس الدارك بيسك .
درس بسيط ومفيد .:biggthump
اشكرا مجدداً وارجوا ان تستمر في الدروس , واتمنى لك التوفيق .

GOGENDANTESS
19-09-2006, 07:43 AM
يالله الدرس الرابع :d


موفق إنشاءالله :)

Son Of UAE
19-09-2006, 11:43 AM
مشكوووور على السلسة الرائعة من الدروس .. سأقوم بإعطائك رأي بالدرس بعد التجربة ان شاء الله :D

ZAIME
19-09-2006, 07:50 PM
أخي سنيك مشكور على الدرس الثالث و ننتظر الدرس الرابع.
**************لم و لن اتوقف***************
أتمنى أن تبقي على هذه العزيمة والارادة دائما .
بالتوفيق.

سامي.خ
20-09-2006, 01:46 AM
ممكن تحط ملفات مرفقة للتوضيح إذا ما عليك كلافة؟

snake_x86
20-09-2006, 10:10 AM
اهلا بكم جميعا و العفو
.................................................
ساموجي \\ اذا تقصد سورس مو ضروري
بتحصل اخر الدرس المثال كامل انسخه و الصقه بالدارك بيسيك

من التراب
20-09-2006, 12:00 PM
شكرا على الدرس الرائع وانتظر الدرس الرابع
أتمنى لو أقدر أجربه لكني لا أملك البرنامج
^.^

d.a.m.h
23-09-2006, 11:47 AM
الف شكر على تعبك معانا.....وانا بستفيد من دروسك فى البرمجة الحقيقية
فى انتظار باقى السلسلة....واعذرنى على التأخر فى الرد

ThE* DaRk *SiDe
23-09-2006, 02:19 PM
السلام عليكم ورحمة الله بركاته ورمضان مبارك
عندي سؤال متأخر وهو

أني نزلت ملف الونرار الذي يحتوي على الدارك بيسك ونزلت أولا dbpro_5_3_trial_low.exe * ثم نزلت DBProUpgrade62.exe *
ثم نسخت الملفين:
DBPCompiler.exe *
TGCCertificateViewer.exe *
إلى C:\Program Files\The Game Creators\Dark Basic Professional Trial\Compiler
والمشكلة أن البرنامج يعمل إلا أنه يطالبني ب order key
وأيضا حينما أحاول تجربة الأمثلة الموجودة في البرنامج فإنه يقول بإن التطبيق المراد فتحه غي موجود في الملف
example.......

أرجوا الاجابة لكي ألحق بالركب...

snake_x86
24-09-2006, 02:24 AM
السلام عليكم ورحمة الله بركاته ورمضان مبارك
عندي سؤال متأخر وهو

أني نزلت ملف الونرار الذي يحتوي على الدارك بيسك ونزلت أولا dbpro_5_3_trial_low.exe * ثم نزلت DBProUpgrade62.exe *
ثم نسخت الملفين:
DBPCompiler.exe *
TGCCertificateViewer.exe *
إلى C:\Program Files\The Game Creators\Dark Basic Professional Trial\Compiler
والمشكلة أن البرنامج يعمل إلا أنه يطالبني ب order key
وأيضا حينما أحاول تجربة الأمثلة الموجودة في البرنامج فإنه يقول بإن التطبيق المراد فتحه غي موجود في الملف
example.......

أرجوا الاجابة لكي ألحق بالركب...
هممممم غريب! :33:
المفروض انه البرنامج يشتغل!
طيب انت متأكد انك نسخت الملفات (((فوق الملفات القديمة)))؟
يعني استبدلتها؟ ترا هو يسألك اذا انت تريد انك تستبدل الملفات!

اذا متأكد جرب امسح البرنامج و نزله من جديد:ouch:

Son Of UAE
24-09-2006, 06:44 AM
الصراحة الدروس عطتني فكرة مغايرة عن الفكرة السابقة ... لم تعجبني فكرة تحميل الصور ووضع ارقام لها و ترقييم كل اوبجيكت ايضاً . لكن الامر اصبح يسيراً الان مع التعود :D
وصلت لمرحة تدخل النماذج و لاكن لم استطع تحريك الفريمات إلى الان. ارجو ان تصل لتلك المرحلة من الدروس بأسرع وقت بعد انهاء الاساسيات. و انا من المتابعيين :biggthump

سامي.خ
25-09-2006, 08:27 PM
يووووووه دائماً حظي زفت
لما أضغط F5 عشان أجرب المشروع يعطيني رسالة عن الدايركت إكس 9
http://www.montada.com/attachment.php?attachmentid=265857&stc=1&d=1159205245
مع أنه محمل عندي وكل البرامج إلي تحتاج الدايركت إكس شغالة عندي

Son Of UAE
25-09-2006, 08:34 PM
يووووووه دائماً حظي زفت
لما أضغط F5 عشان أجرب المشروع يعطيني رسالة عن الدايركت إكس 9
http://www.montada.com/attachment.php?attachmentid=265857&stc=1&d=1159205245
مع أنه محمل عندي وكل البرامج إلي تحتاج الدايركت إكس شغالة عندي


توجد ثلاث اصدارات اجدد من الي عندك ... نزل اخرها بشهر 8 سنه 2006 بأسم 9.0c
وركز على حرف السي :أفكر:

سامي.خ
01-10-2006, 06:05 AM
شكراً on Of UAE