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

مشاهدة النسخة كاملة : دروس الـDark basic :بدايــــة الطريق



The_source
03-12-2007, 01:58 PM
بسم لله الرحمن الرحيــــــــم
الدرس الأول

وقبل كل شيء السلام عليكم ورحة الله وبركاته
هذه أول دروسي في لغة الـــــــDark basic , وفي هذا الدرس سأشرح عن العلاقات الرياضيّه والأوامر المتعلقه بالنصوص
وأنواع المتغيرات الذي سنتعامل معها .
هناك ثلاثه متغيرات سنتعامل معها وهي:
1)- المتغيرات العدديه(integer ).
2)- المتغيرات من نوع السلسله الحرفيه(string ).
3)- المتغيرات العشريّه (long ).
هنا جدول توضيحي للموضوع
Name : Mark
Integer : None
$ : String
# : long

سنشرح كل واحد على حدى

* المتغيرات العدديه(integer ).
في هذا النوع من المتغيرات سوف نتعامل معه بشكل كبير أثناء دراستنا
لأنه يدخل في العمليات الحسابيه والأكثر أهميّه من ذلك إنه لايقتصر على العمليات الحسابيه فقط
هنا سنذكر إستخدام أخر مهم له


load image "File name",1
load bitmap "File name",2
load object "File name",3

وإلخ........
إذا بتلاحظوا الأعداد 1,2,3 بعد كل File name هي الأعداد التي سنتعامل معها دون الحاجه إلى كتابة أسم
الملف المراد إستدعائه أو العمل عليه
ملاحظه :-
مثل أوامر التحميل(load) أعلاه لاتقبل إلا الأعداد الطبيعيه.
مثال بسيط يوضح إستعمال الأعداد الحقيقيه في العمليات الحسابيه

أفتح برنامج الـــــDark basic وفي نافذة الكود أكتب السطور التاليه:-



a=2+6
print a
Wait key


أو يمكن كتابة الأوامر بهده الطريقه

b=6
c=2
a=b+c
print a
wait key

مـــــــــــاذا تلاحظوا عند الضغط على زر F5 أي عند تنفيذ الأوامر ورؤية الناتج؟
نعم هذا صحيح ,ستلاحظوا إن الناتج هو 8
سنشرح الكود بشكل سريع
في السطر الأول جمعنا عددين هما 6 و 2 وأردنا أن نخزن الناتج في المتغير العددي a
أما بالنسبه للأمر Wait key
فهو يعتبرمن الاوامر تقريباً لولاه لما كنت تستطيع رؤية نتيجة تنفيدك للأوامر
لماذا سمي Wait key ؟
لأن شاشة العرض تبقى حتى تضغط على أي زر من ثم تعود إلى بيئة البرمجه

لمـــــــــــاذا a متغيرعددي ؟
لاحظوا الجدول التوضيحي في سطر Integer تحت عنوان mark
نلاحظ إنه كُتب None أي لايوجد رمز يمثل المتغيرات العدديه حتى إذا حطيتوا رمز
مثل المتغيرات الأخرى($,#) فهو لن يعمل أو تظهر نتيجه غير مرجوّه.

*المتغيرات من نوع السلسله الحرفيّه(String ).
يمكن التعامل مع هذا النوع من المتغيرات بعدة طُرق ومنها :
1)- يمكن عرض النصوص بشكل مباشر.

مثـــــــــال:-


print "Hi,my name is DBprog"
Wait key

أو

a$="Hi,my name is DBprog"
Print a$
Wait key
أو

a$="Hi,my name is DBprog"
b$="and my age is 21"
print a$+b$
wait key

ملاحظه:-
1)- يمكن كتابة الكود السابق بهذه الطريقه



a$="Hi,my name is DBprog"
b$=" and my age is 21"
print a$+b$
wait key


مــــــــاذا نلاحظ في السطر الثاني من الكود ؟
نلاحظ وجود فراغ والغرض منه ترك مسافه بين العبارات
2)- يجب وضع النص بين إشارتي التنصيص ("") بحكم إنه متغير نصّي

* المتغيرات العشريّه(long)
أو السلسله العدديه الطويله , يمكن التعامل معها بنفس الطريقه التي تعاملنا مع الــInteger
لهذا لاداعي لشرحها وهذا مثال يشرح الأمور


a#=22.45
b#=56.23
c#=a#+b#
print c#
wait key


ملاحظه:-
إذا أزحنا إشارة إشارة # من أحد المتغيرات فإنه سيتم جمع integer مع long
أما إذا أزحناها من المتغير الذي يمثل الناتج فإن الناتج سيكون عدد طبيعي عند التنفيذ
جربها وشوف..........

الأن والحمد لله أنتهينا من شرح أنواع المتغيرات الأساسيه الذي سنتعامل معها والأن سوف نتطرّق إلى

Convert
في هذا الموضوع سوف نتعلم كيف نقوم بالتحويل مع المتغيرات فيما بينها
عند التحويل إلى string نستخدم الأمر Str$
مثـــــال:-


a=50
a$=str$(a)
print a$
wait key


ملاحظه:-
ينطبق هذا التحويل أعلاه على الـــlong أيضاً
عند التحويل إلى Integer أو long نستخدم أمر val


a$="Hi,my name is DBprog"
a=val(a$)
print a
wait key


نلا حظ أن الناتج كان صفر...... لمـــــــاذا؟
شيء معروف ...لأن القيمه المحوله إلى عدد كانت نصّيه لهذا كان الناتج صفرً
لأنه لم يتعرف على إنها عدد أثناء التحويل.

وهنا أيضاً سوف نتعرف على بعض الأوامر التي تتعلق بالنصوص و سوف تساعدنا فيما بعد,وهي:

Asc$ command
هذا الأمر يعيد قيمة الحرف بما يقابله من عدد بنظام Ascii
مثـــــال:-

s=Asc("b")
print s
wait key
نلاحظ إن النتيجه ستكون 98 وهو العدد الذي يمثل الحرف B
يمكنك أن تجرب على أعداد اُخرى.

Chr$ command
هذا الأمر وبإختصار شديد عكس السابق
مثـــــــال:-

s$=Chr$(98)
print s$
wait key

Len command
هذا الأمر يقوم بإحصاء عدد الحروف الموجوده في النص.....كيف؟
مثـــــــال:-

name=len("Hi,my name is DBprog")
print name
wait key

لمـــاذا لم نخزن النص في متغير نصّي ($name) ؟
هذا الأمر مُختص بإحصاء الحروف وبما إنه مُختص بذلك في هذه الحاله سيتم تخزين النص في متغير من نوع Integer
حتى يظهر لنا عدد الأحرف
ملاحظه:-
هذا الأمر يحصي المسافات(Space) أيضاً ركز على هذه النقطه

Mid$ command
يقوم هذا الأمر بطباعة الحرف الذي أنت تحدده في الـparametar الخاص بيه
مثـــــــال:-

DBprog$=mid$("Hi every body",2)
print DBprog$
wait keyنلاحظ إثناء التنفيذ إنه تم طباعة الحرف i لإننا وضعنا رقم 2 وهو يمثل ثاني حرف في النص
والذي سيتم طباعته
ملاحظه:-
يتم إحصاء الفراغات أيضاً في هذا الأمر وأن صدف إننا كتبنا في المثال السابق
رقم 3 سيصادف أثناء العد فراغ(Space) وسيكون الناتج لاشيء(شاشه سوداء فقط).

Right$ command
هذا الأمر مشابه نوعاً ما للسابق من ناحية الـParametar
وهو يقوم بطباعة النصوص إبتداءً من اليمين
مثـــــــال:-

Myname$=right$("hello every body",4)
print Myname$
wait key
سيتم طباعة كلمة body أثناء التنفيذ

Left$ command
هذا الأمر كالسابق ولكن يطبع من اليسار حسب القيمه المعطاه.
مثــــــال:-


Myname$=left$("hello every body",4)
print Myname$
wait key

هنا سيطبع كلمة جحيم(hell) ههههههههه.

ملاحظه هامّه جداً:-
لاتكتب الأكواد نقلاً من الموضوع بل قوم بنسخها مباشرتاً حتى تراها بشكل صحيح أثناء لصقها وشكراً

وأتمنى أن تكونوا أستفذتم من الشرح ولنا لقاء في الدرس القادم..........;)

Amir Imam
03-12-2007, 02:19 PM
بسم الله
شكرا يا عزيزي على هذه الدروس .. ان شاء الله الكل يستفيد

theprinces
03-12-2007, 03:26 PM
شكرا شكرا لكن انا الحمد الله كل هذا بعرفه من السي بلس بلس وهذه اشياء سهلة للغاية وشفه تطبيقاتي بشكل اخر .

theprinces
03-12-2007, 03:27 PM
شكرا شكرا لكن انا الحمد الله كل هذا بعرفه من السي بلس بلس وهذه اشياء سهلة للغاية وشفه تطبيقاتي بشكل اخر .

The_source
03-12-2007, 03:36 PM
شكرا شكرا لكن انا الحمد الله كل هذا بعرفه من السي بلس بلس وهذه اشياء سهلة للغاية وشفه تطبيقاتي بشكل اخر .
هذا صحيح ولكن لاتستسهل الأمور لإنه هذا إلا تمهيد فقط..........(^_^)

theprinces
03-12-2007, 03:55 PM
صحيح بالنسبة لاول شرح وهو integer سهل للغاية.

2:شوفه تطبيقي بشكل اخر يصير ايضا غير الاخ نجد.
الاول على integer

a=2+6
print "a=";8
wait key

شكل تاني بدل ما تستعمل wait key تقدر do >>loopشوفه.

a=2+6
print "a=";a
do
loop

وبعدها متل ما قال الاخ نجد بارك الله فيه وبجهوده نضغط f5.

وبالنسبة ل string فهي اسماء.

اخدنا في السي للي يوخد دروس سي انه cout عنصر اخراج وهنا print عنصر الاخراج على الشاشة سهل جدا الدارك.
وبالنسبة لكوده رمزنا للمتغير a ب $ لماذا يا حلوين لانه اي متغير من نوع string يتبع دائما ب $ احفظه زي اسمك ما بده فهم ومتل ما قال الاخ اي نص يضع بين اشارتي تنصيص ليش يا ترى سؤال طيب النص هل يعد امر ؟؟؟؟!! سؤال بحير بسالكم ياه النص يعد دالة اي شيء من هذا القبيل شو رايكم يا ترى ؟؟؟؟؟؟؟؟ فلذلك نضع النص بين اشارتي تنصني لانه اسم اتمنى وصلت الفكرة واكيد وصلتكم الفكرة من الاخ db نجد بارك الله في جهوده.

والثالث هو long هو يعني يمثل الاعداد العشرية يا شباب يا حلوين الله يخليكم سؤال بسيط لكم يعني يا ترى لماذا برايكم امر long??????????
امر long يستعمل ببساطة متى ؟ عندما تريد جمع او طرح او قسمة عدد عشري اوكي بالسي بلس بلس شوفه كيف مثلا اذا اردتم ان تعرف المتغير ك عدد صحيح شو تضعه قبله int هنا لا شيء واذا اردت ان تعبر عن متغير بانه عدد عشري في السي كيف تضع قبل المتغير long اما في الدارك شوفه سهولة الدارك تضع بعده اشارة # حتى يعرف ك عدد عشري اريتم لماذا وكذلك شانه شان ال string وغيره اوكي وصلت الفكرة.

سؤال لو وضعنا قيمة a=5.5 و b=10.5 اذا لم نضع بعد المتغيرين اشارتي تعريف لهما بانهما كاعدادا عشرية long ماذا سوف يحصل سوف تعامل المتغيرات a و b كاعداد صحيحة ولن يعرف الاعداد العشرية بعد الرقم الصحيح وصلت الفكرة ^^

وجربه هذا الكود

a=22.45
b=56.23
c=a+b
print c
wait key

شو فهمته الان. زي شرح db بارك الله فيه.

بالنسبة للباقي فهو ايضا سهل وخلص يمكن الاخ db يزعل لاني بشرح غير شرحه بتاسف منه وكمله الباقي.

The_source
03-12-2007, 04:13 PM
شكل تاني بدل ما تستعمل wait key تقدر do >>loopشوفه
هو صحيح بس أنا مش عايز ألخبط الطلاب إن كنت فاهم هذا الموضوع مسبقاً كان من المفروض أن تحتفظ به لنفسك في الوضع الحالي

The_source
03-12-2007, 04:16 PM
سؤال لو وضعنا قيمة a=5.5 و b=10.5 اذا لم نضع بعد المتغيرين اشارتي تعريف لهما بانهما كاعدادا عشرية long ماذا سوف يحصل سوف تعامل المتغيرات a و b كاعداد صحيحة ولن يعرف الاعداد العشرية بعد الرقم الصحيح وصلت الفكرة

مافي إختلاف بين هذا الكلام وشرحي له ...........لذا كان من المفترض عدم كتابته من الأصل

أما باقي

The_source
03-12-2007, 04:22 PM
سؤال لو وضعنا قيمة a=5.5 و b=10.5 اذا لم نضع بعد المتغيرين اشارتي تعريف لهما بانهما كاعدادا عشرية long ماذا سوف يحصل سوف تعامل المتغيرات a و b كاعداد صحيحة ولن يعرف الاعداد العشرية بعد الرقم الصحيح وصلت الفكرة

مافي إختلاف بين هذا الكلام وشرحي له ...........لذا كان من المفترض عدم كتابته من الأصل

أما باقي كلامك صحيح...........يمكن كتابة المتغيرات العدديه والحرفيه في نفس الوقت وإن شاء الله تكون تتفاعل معي في الدروس الأخرى......وشكراً

Amir Imam
03-12-2007, 04:49 PM
بسم الله
ايه يا اخ برنسس ده .. انت يا عم مش هتبطل .. عايز تدي دروس افتح موضوع لوحدك وادي دروس فيه
انا اتخنقت منك خلاص
:12: :12: :12: :12: :12: :12: :12: :12: :12: :12:

theprinces
03-12-2007, 07:21 PM
انا اصلا كل هذا من نجد وفكرت اعمل غلات تانية زبط معاي كله بفضل الله ونجد شكرا نجد تااااااااااابع دروسك رووعة دروسك استمر.

The_source
04-12-2007, 09:40 AM
السلام عليكم ورحمة الله وبركاته

الدرس الثــــاني
في هذا الدرس سوف نتعرف على بعض الأومر التي من شأنها تحسين النصوص أو بمعنى أخر
التعديل في خصائص النصوص ومنها

Set cursor command
هذا الأمر يقوم بتحديد نقطه على شاشة العرض(عند التنفيد)......كيف؟
سيطلب منك هذا الأمر تحديد الأحداثي x,y
وهذا الأمر فعّال جداً مع مع الأمر Print
مثـــــال:-


Rem "This command will print my name"
set cursor 320,240
print "DBprog"
wait key

سنشرح الأمر السابق بسرعه
السطر الأول لو بتلاحظوا كلمة Rem جاءت في بدايته وهذه الكلمه تختص بالتعليقات
أي أن أي شيء يُكتب بعدها سواء كان رمز أو أمر لايتم قرائته من قِبل الــCompiler
السطر الثاني
نقوم بتحديد المكان الذي ستظهر فيه الكتابه وذلك عن طريق الأحداثيات
أما بالنسبه للسطور الأخرى فهي ليست جديده بالنسبه لكم

Text command
هذا الأمر يُعتبر الأفضل في عرض النصوص لإنه يطلب الأحداثيات والنص المراد كتابته
Parametar
Text x,y,String

مثـــــال:-


Rem "This command will print my name"
text 320,240,"DBprog"
wait key


Font commands
ومن ضمنها
set text size
هذا الأمر يتحكم بحجم الخط
set text font
هذا الأمر يتحكم بنوع الخط

مثـــــال:-



set text font "Arial"
set text size 40
text 320,240,"DBprog"
wait key

الأوامر التي تُعيد لك قيــــم

Text font$() command
هذا الأمر يُعيد لك نوع أو أسم الخط المستخدم في الكتابه
مثـــــــال:-



DBprog$=text font$()
text 320,240,DBprog$
wait key


Text size()
مثل السابق ولكن يعيد القيمه المتعلقه بحجم الخط
مثـــــــال:-



DBprog = TEXT SIZE()
set cursor 320,240
print DBprog
wait key


Set text to Bold,italic,normal command

مثـــــال:-



DBprog = TEXT SIZE()
set text to italic
set cursor 320,240
print DBprog
wait key


Ink command
هذا الأمر يقوم بإعطاء لون للخط ولخلفيته, طالما يقوم بذلك فهو يطلب الأمر المختص باللون وأعتقد إنكم سمعتم من قبل عن
RGB
هذا الأمر بيطلب قيم لكلاً من اللون الأحمر والأخضر والأزرق حسب الترتيب

مثــــــال:-



ink rgb(25,255,16),rgb(30,90,50)
DBprog = TEXT SIZE()
set text to italic
set cursor 320,240
print DBprog
wait key

وهناك الكثير من الأوامر المتعلّقه بالخط يمكنك إكتشافها بنفسك
أما الأن فذكرنا أهمها
سنتعرف الأن على أحــــــــد أوامر الأدخال وهو

Input commandهذا الأمر يطلب منك النص المراد ظهوره إلى جانب القيمه التي تريد أن يتم إدخالها
ولهذا الأمر طريقتين للأستخدام
1)- إما أن تضع القيمه المراد إدخالها مباشره(متغير).
2)- إما أن تضع نص لإعطاء الشخص فكره عما يتم إدخاله في الحقل.

مثــــــال:-



Input myname$
print "you make it,Conguratulations"
wait key

أو



Input "my name ",myname$
print "you make it,Conguratulations"
wait key

في السطر الأول من الأمرين السابقين وضعنا متغير نصّي والذي كان عباره عن وحدة الأدخال.
عند تنفيد الأمر نلاحظ إنه بيطلب إدخال إسمك أو أي شيء في الحقل
وعند الضغط لمشاهدة النتيجه سنرى رساله أو أي شيء تريد له الظهور أو حزمه من الأوامر.
وهنا رفعت مثال في المرفقات يختصر كل ناشرحته في هذا الدرس وأعرف إن البعض بيقول لماذا لم يرفعه وينتهي من الأمر؟
وجواب هذا السؤال بسيط جداً
لإن هناك بعض الأشخاص الذين يحتاجون لشرح مفصّل حتى تثبت الفكره بحكم إنهم مبتدئين
وبهذا أنتهينا من الأمور المتعلّقه بالنصوص وسنناقش الجمل الشرطيّه وجمل الدوران في الدرس القادم وهذا مثال بسيط عن جملة الشرط

وشكراً.................(^_^)

theprinces
04-12-2007, 10:51 AM
ياه رووعة دروسك الله لا يحرمنا من دروسك بس نجد انت دبحتنا يا دوب نطبق الي اعطيتنا اياه بالدرس الاول ههههه
ضغطتنا ضغط على كل استمر ^^ من زمان وين غايب.

Ahmedbna
04-12-2007, 12:18 PM
ممتاز اخى دروسك روعة ، مع انى اعرف كل ما شرحته مسبقا ، لكن اريد ان ارى المزيد من شرحك الممتع بالتوفيق اخى وارجو ان لا تفعل مثل غيرك وتقطع دروسك فيما بعد

theprinces
04-12-2007, 12:25 PM
طيب درسك حلو بس في سؤال بسيط طيب ممكن من فضلك تعطيني كيف يتم التعامل مع الاحداثيات x,y,z يا اخ مشان الله حيرني على عكس غيره من البرامج قال اذا بتكبر القيمة بنزل لتحت في المحور y كنه متخلف طيب بالسي
على العكس y فوق موجب وتحت سالب هون لا بالدارك y لفوق سالب ولتحت موجب؟؟؟؟؟؟
بس مساعدة بسيط تقدر تشرحلي الزوايا كيف يتعامل معها هنا ويعطيك الف عافية.

وهل ينفع امر set cours مع الحداثيين y,z للاجسام وشكرا.

واخر ثلاث اقسام الخاصة ب اظهار حجم الخط ونوع الخط واخر ثلاث اشياء لم افهمها هي وهن بعد هاد الامر الى الاخر لم افهمه.
Text font$() command

The_source
04-12-2007, 12:25 PM
ممتاز اخى دروسك روعة ، مع انى اعرف كل ما شرحته مسبقا ، لكن اريد ان ارى المزيد من شرحك الممتع بالتوفيق اخى وارجو ان لا تفعل مثل غيرك وتقطع دروسك فيما بعد


تُشكر على هذا الرد أخي sons of egypt وإن شـــــاء الله ما راح أقطع دروسي........بالتوفيق

theprinces
04-12-2007, 12:42 PM
وبالنسبة للمرفقات اول واحد فاهمه لكن بتاع الباسوورد مش فاهمه كويس؟

Amir Imam
04-12-2007, 01:23 PM
بسم الله
على فكرة يا اخ برنسس .. التعامل مع الاحداثيات انا مش شايف انه مشكلة ولا حاجة .. فعلا الاحداثي y بالموجب يزيد لفوق وبالسالب ينقص لتحت .. بس يمكن انت اللي مخليك مش عارف تظبطها التعامل مع الكاميرا

Ahmedbna
04-12-2007, 04:17 PM
وبالنسبة للمرفقات اول واحد فاهمه لكن بتاع الباسوورد مش فاهمه كويس؟

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

theprinces
04-12-2007, 04:54 PM
لا اخ سون اف ايجيبت الله يسامحك انا عارف والله عارف بس بعض الاشياء في الكود مش فاهمها بس انا عارف شو المقصد منه وشكرا اقدتني بشكرك وبالنبسة لامير بارك الله فيك على الاهتمام بس ممكن تشرحلي الاحداثيات على رسمة تديني الاحداثيات كيف اتعامل معهم على الدارك وهيك استفيد بنسبة 90%

Amir Imam
04-12-2007, 06:03 PM
بسم الله
اسف اخي العزيز برنسس .. بس ده الدرس بتاع DBProg .. لو هو يسمحلي ممكن اساعدك .. لكن في درسه هو يساعدك :)

Ahmedbna
05-12-2007, 12:09 AM
لا اخ سون اف ايجيبت الله يسامحك انا عارف والله عارف بس بعض الاشياء في الكود مش فاهمها بس انا عارف شو المقصد منه وشكرا اقدتني بشكرك وبالنبسة لامير بارك الله فيك على الاهتمام بس ممكن تشرحلي الاحداثيات على رسمة تديني الاحداثيات كيف اتعامل معهم على الدارك وهيك استفيد بنسبة 90%



اخى الفاضل theprinces ،( ده بعد اذن استاذنا الكبير صاحب الدروس ) مع انى مش عاوزك تقفز بسرعة للخطوات اللى حقلهالك ده عشان الأستاذ صاحب الموضوع اكيد حيقولها للأعضاء فيما بعد بس هو بيدرج الدروس وبيعلمكم الأساسيات الأسهل فألاصعب حتى تكون انت والأعضاء على اساس --- المهم لك ماتريد فى طلبك --- احداثيات الحركة سهلة فى الداركبيسك وتنقسم بأ ختصار الى x , y , z حيث x هى للأحداثيات اليمين واليسار و Y هى لاحداثيات الأعلى والأسفل ، اما z فهى للعمق او البعد الثالث
وقد صنعت لك مثال مخصوص فى المرفقات حتى اكون قد افدتك حقا هذه المرة
ولكن رجاء رجاء من الأعضاء لاتقفزروا بسرعة لامثلة متقدمة وتتبعوا دروس الأستاذ DBprog بالتدريج فأنا واثق من قدراته وانه سيفيدكم

The_source
05-12-2007, 07:57 AM
اخى الفاضل theprinces ،( ده بعد اذن استاذنا الكبير صاحب الدروس ) مع انى مش عاوزك تقفز بسرعة للخطوات اللى حقلهالك ده عشان الأستاذ صاحب الموضوع اكيد حيقولها للأعضاء فيما بعد بس هو بيدرج الدروس وبيعلمكم الأساسيات الأسهل فألاصعب حتى تكون انت والأعضاء على اساس --- المهم لك ماتريد فى طلبك --- احداثيات الحركة سهلة فى الداركبيسك وتنقسم بأ ختصار الى x , y , z حيث x هى للأحداثيات اليمين واليسار و Y هى لاحداثيات الأعلى والأسفل ، اما z فهى للعمق او البعد الثالث
وقد صنعت لك مثال مخصوص فى المرفقات حتى اكون قد افدتك حقا هذه المرة
ولكن رجاء رجاء من الأعضاء لاتقفزروا بسرعة لامثلة متقدمة وتتبعوا دروس الأستاذ DBprog بالتدريج فأنا واثق من قدراته وانه سيفيدكم




تُشكر أخي sons of egypt على ثقتك بي .......وأكرر شكري
ولكن بانسبه للأخ theprinces مايفهم إنه يجب مناقشت الموضوع في قسم الأستفسارات.....(-__-)

theprinces
05-12-2007, 03:57 PM
الله يسامحك طيب يا نجد مهو السؤال خاص بالموضوع لايش اسئل سؤال خارج عن الموضوع اسهي وبعدين تدي دروس ومش لازم اسئلك عنهم هنا طيب خلص بس يا ويلك اذا بحط استفسار في قسم الاستفسارات وما بتجاوب^^

ولك من زمان يا son of eygpt بعدين انت وجهت لي اهانة كبيرة ههههههه كيف تعلمني الدايركت وله بمزح معك بس الدايركت بعلم الناس فيه مع اني لا اعرفله لكن اعرف اشياء بسيططة منه بسيطة جدا اوكي بما انك هيك خد
الدايركت اكس يا حلو بستعمل قاعدة اليد اليسرى وهذه خطا يقع فيها المبتدؤون انت تريد تشرحلي عن الدايركت ولا تعرف فيه انا طلبت لك عن الدارك وبشكرك جدا انت رااااااااااااااااااائع حيت عقدتي الاحدداثيات في الدايركت اسهل بكثير من الدارك اوكي انا الدايركت بشرحلك ياه احداثياته يعني هههههههههه مش بشرحلك اكواده بشرحلك ياه بالتفصيل الاحداثيات لكن شكرا جدا الاجابة عن سؤالي ووعد اسئلتي في قسم الاطلبات شكرا.

The_source
05-12-2007, 04:36 PM
الله يسامحك طيب يا نجد مهو السؤال خاص بالموضوع لايش اسئل سؤال خارج عن الموضوع اسهي وبعدين تدي دروس ومش لازم اسئلك عنهم هنا طيب خلص بس يا ويلك اذا بحط استفسار في قسم الاستفسارات وما بتجاوب^^
ههههههههههههه أنا موجود من أجلك وكمان عندك بريدي وتقدر تأخذ حريتك لكي تسألني وفي أي وقت

theprinces
05-12-2007, 06:03 PM
لا انا ما عندي ايميلك؟!

The_source
06-12-2007, 08:27 AM
لا انا ما عندي ايميلك؟!
طيب يا ناكر الجميل أنا أقسي عليك علشان تفهم
أما إذا كنت بتتعامل مثل الأطفال إنسى الموضوع أنا بحظرك عندي ....................أرجو من المشرف الكريم حذف هذه الردود وكافة الردود الغير معنيّه في الموضوع.........وشكراً

Ahmedbna
06-12-2007, 09:11 AM
ايه يا جماعة صلوا على النبى واهدأ يا اخ theprinces ارجو منك السكوت وعدم الكلام وعدم مقاطعة الأخ dbprog فى شرح دروسة ، احنا مش ناقصين كل شوية يا theprinces مشكلة تحصل وبالتالى تضيع الدروس على نفسك وعل الأعضاء ككل
ارجو منك يا dbprog عدم الألتفاف لاى سؤال خارج الدرس اللذى تشرحة ، واكمل دروسك من فضلك

The_source
06-12-2007, 09:22 AM
ارجو منك يا dbprog عدم الألتفاف لاى سؤال خارج الدرس اللذى تشرحة ، واكمل دروسك من فضلك


كلام theprinces مش بيغير حاجه حتى إذا أنتقدني من في المنتدى ومع ذلك سأواصل دروسي الأهم أن يفهموا إخوتي الكرام
نظراً للوضع الراهن أنا بأرفع خمسه دروس ضربه واحده في العيد الأضحى عندي شغلات كثير
زمن ناحيه أخرى أرجو من الأخ snake_x86 متابعة المشوار من بعدي إن أكانت لديه المقدره في الوضع الحالي وشكراً.............

XORO
06-12-2007, 11:30 AM
DBprog : بارك الله فيك اخوي المحترم على وضعك للدروس ان شاء الله متى تخلص انا برتب لك الموضوع علشان ما يصير هناك نوع من التشتت ;)

بقية الاعضاء : اتمنى منكم ان تكتفوا بالرد على العضو مرة وحدة عشان ما يصير الموضوع
دردشة لان عندكم الرسائل الخاصة وموضوع الدردشة الخاص بالقسم والماسينجر عشان تتواصلون مع بعض :)

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

بارك الله فيكم :biggthump

The_source
06-12-2007, 12:27 PM
DBprog : بارك الله فيك اخوي المحترم على وضعك للدروس ان شاء الله متى تخلص انا برتب لك الموضوع علشان ما يصير هناك نوع من التشتت ;)

بقية الاعضاء : اتمنى منكم ان تكتفوا بالرد على العضو مرة وحدة عشان ما يصير الموضوع
دردشة لان عندكم الرسائل الخاصة وموضوع الدردشة الخاص بالقسم والماسينجر عشان تتواصلون مع بعض :)

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

بارك الله فيكم :biggthump


كلمة شكراَ قليله بحقك واللــــــــــــه.................ياريت كل الناس زيّك و100000000000 شكراَ لك أخي

The_source
20-12-2007, 09:00 AM
عيد مبارك لكل أخواني في المنتدى

أعذرونا ياشباب ولاتفهمونا غلط , سوف أتغيّب عن المنتدى لفتره لأنه حصل لي ظرف لم أتوقّعه
وأتمنى عندما أعود أرى أخواني قد أصبحوا متمكنين في مجالهم ببرمجة الألعاب............
إلى اللقـــــــــــــــــــــــاء القادم..............

drow13
20-12-2007, 01:08 PM
مرحبا DBprog الموضوع ر ائع جدا
ونريد المزيد من الدروس

kakarot
20-12-2007, 02:34 PM
جزاك الله خيراً أستفدت من الدروس
بإدن الله أطبقهم

theprinces
20-12-2007, 02:48 PM
طيب مع السلامة ويا رب يحظك وان شاء اله تود بالسلامة

mastergame
20-12-2007, 03:15 PM
والله شرحك للاكواد ودرس يفوق التوقعات لقد فهمت من الدرس نقط نقط اكثر من دروس سنيك والدروس الخرى
ننتظر درسك القادم

The_source
24-01-2008, 04:30 PM
بسم الله الرحمن الرحيم


السلام عليكم يا إخوتي الكرام وأعتذر عن الأنقطاع الطويل عليكم وذلك بسبب الظروف التي مررت بها مؤخراً إلى جانب أشياء أخرى ومع هذا لم أنساكم بعد
لإنني شخص يفي بوعوده,دعونا من هذا الكلام الأن وأرجو أن تركّزوا معي في هذا الدرس لإنه كل شيء في لغات البرمجه بتتمحور على هذه الأشياء بشكل عام

condition statements

أعتقد بإنّكم تعرفوا جمل الشرط if ..........else..........endif and if............. then ربما صياغتها قد تكون مختلفه في بالمقارنه
مع لغات برمجه أخرى, لكن الفكره لاتختلف أبداً كما يُقال المثل (وجهان لعمله واحده).
سأوضّح سبب الأختلاف في مثال بسيط

في الــــvisual basic

أولاً يتم توقيع أداة النص text مع أداة command ومن ثم نضع الكود الأتي في أداة command تحت الحدث click أو أي شيء تريد


if text1="123456" then
msgbox"Correct code"
else
msgbox"Wrong code"
endif


في الــdark basic



msg$ = "hi there"
print msg$
if msg$="hi there" then
wait 1000
cls
print "exist"
wait key
or
msg$ = "hi there"
print msg$
if msg$="hi there"
wait 1000
cls
print "exist"
else
print"buz off"
endif
wait key


# ملاحظه:
else
لن يكون لها غرض في المثال الثاني من الدارك والسبب هو لعدم وجود حدث معيّن حتى يتم التخيير من أمرين لذا لاتستغربوا من الأمر
وسيتم مناقشته لاحقاً.

# ماذا نلاحظ في الأمثله السابقه؟
نلاحظ إن في الــvisual basic قد تم الجمع في كلا الأسلوبين الذي أستخدمناهم في الدارك
أي إن في الدارك نستخدم if .......then وإما if........else........endif وهذا ما أقصده من خلال كلامي فيما سبق عن إختلاف أسلوب
سياغة جمل الشرط بأساليب مختلفه ولكن الغرض واحد.........يبدوا إنني تماديت في الكلام والأن هيا لنباشر في الشرح.

If.........else..........endif & if .........then

فيما سبق أعتقد إنه توضحت الفكره شويّه عن إستخدام هذه الجمل الشرطيّه,أما الأن سيتم مناقشتها بشكل أوضح ومبسّط أكثر إن شاء الله.
هذه الجُمل تكون فعّاله أكثر عندما يتم ربطها أو أستخدامها مع نوع أخر من الجُمل ,هنا سنرى قوتها وفعاليتها.



msg$ = "hi there"
do
input "Set (hi there) statment int field ",msg$
if msg$="hi there"
wait 1000
set cursor 0,20
print "exist"
else
print "buz off"
wait 1000
end
endif
loop


نلاحظ عند تطبيق هذا المثال بشكل صحيح أي تنفيد ما طُلب منك بحسب السؤال سيتم ظهور رساله وتخبرك إنه النص المدخل موجود (Exist)
مالم سيتم طباعة أبتعد وستخرج من البرنامج بعد ثانيه(buzz off)
لإن اّليّة عمل جملة الشرط هذه هي إختبار نوعين من المدخلات إن كان المُدخل صحيح أو الحدث الذي أنت وضعته سيتم نقلك إلى المنطّقه أو الحدث الذي تريده
مالم سيتم حدث معيّن, أما النوع الأخر من الجُمل (If.........then)لا تتوفّر له هذه الخاصيّه
أي إنه حالما تضع شرط سينفّذه ولن يخيّرك بين أمرين.

مثـــــال:-



msg$ = "hi there"
do
input "Set (hi there) statment int field ",msg$
if msg$="hi there" then
wait 1000
set cursor 0,20
print "exist"
loop


ستلاحظ عند كتابة المطلوب أو أي شيء أخر سيتم ظهور النص(exist),وهذه مشكله ويمكن التخفيف من ضررها أي تحسينها لعملها بشكل مش بطّال
وذلك بإستخدامgoto
كيــــــــــف؟
أي إنه لكي نتفاداها نرفق بعد الشرط goto أي الذهاب إلى المكان الذي أنت تريده أن ينفّذ من ثم العوده إلى حيث بدأت
مثال توضيحي


up:
input "Set (hi there) statment int field ",msg$
if msg$= "hi" then
goto there
if msg$= "go away" then
goto there2

there:
set cursor 0,20
print "exist"
goto up
there2:
set cursor 0,20
print "Buzz off"
goto up
wait key


عند التنفيذ سيتم إدخال الكلمه المطلوبه في نافذة الكود ليتم الحصول على النتيجه المُرضيّه والعوده إلى حيث بدأت العمليّه أما إن قمت بإزالة
goto up
ستلاحظ بإنه يتخطى النص المراد ظهوره في الشاشه ويتم ظهور أخر نص بحكم إنه مقيد بــgoto up سواء كانت موجوده أم لا
جرب تزيل goto up في أول نقله وستلاحظ ماذا سيحدث
أي إنه بإزالتها ستم عرض النص الذي يليها مباشرهم
ومع هذا الخطاء موجود..............ماهــــــــو؟
جرب تدخل كلمه أخرى عدا الذي يتم طلبهم وشوفوا ماذا سينتج.
نعم هذا هو الخطاء سيكتب أول جمله وهي (exist).
والأن بمجرد ما أقولكم الأتي البعض سيغضب ومنهم من ستفهّم الأمر ^_____________^
الأن يمكن تجنّب هذه المشكله كامله بهذا الكود



up:
input "Set (hi there) statment int field ",msg$
if msg$= "hi" then
goto there
if msg$<> "hi" then
goto there2

there:
set cursor 0,20
print "exist"
wait 1000
cls
goto up
there2:
set cursor 0,20
print "Buzz off"
wait 1000
cls
goto up
wait key


قوموا بلصقه وجربوا أن تكتبوا العباره الصحيحه أو أي عباره في ذهنكم ولاحظوا ماذا سيحصل,إشارة <>معناها لايساوي
أي إنه أي كلمه عدا exist سيتم نقلك إلى كلمة buzz off .
من سيتفهّم الأمر هو الشخص الذي مُلم في هذا الموضوع من قبل أما من سيغضب هو الشخص الذي مازال يتعلّم وسيقول:(لماذا لم يقولها من البدايه ويخلصنا)
السبب هو إنني أريد لأخوتي أن يحيطوا بالموضوع بشكل كبير وكلما تشعّب الموضوع وزادت إحاطتك به قلّت و قوعك بالأخطاء أخي الكريم.
# ملاحظه:
يمكنك وضع الكود السابق في جملة دوران do.....loop .
هناك بعض إضافات من خلالها تحسن عمل جُمل الشرط وهي


AND & OR

هذه الأوامر من شأنها تحسين جُمل الشرط ومنافعها كبيره
OR:
وظيفتها هي أن تخيّرك بين شرطين لحصول حدث أو أمر معيّن

مثـــــــال:-


up:
input "Set (hi there) statment int field ",msg$
if msg$= "hi" or msg$= "hello" then
goto there
if msg$<> "hi" then
goto there2

there:
set cursor 0,20
print "exist"
wait 1000
cls
goto up
there2:
set cursor 0,20
print "Buzz off"
wait 1000
cls
goto up
loop

هو نفس المثال السابق وإنما أضفنا السطر or msg$= "hello" بعد الشرط الأول وبذلك يتم التخيير بين نوعين من المٌدخلات
ويمكنك أيضاً أن تجعل المدخلات متعدده إي إنه لايحصرك بين عدد معين من المدخلات
or msg$= "hello" or msg$= "jackass" or msg$="welcom"..................elc
AND:
أما بالنسبه لأمر And فهو كثيراً مايستخدم في الأحداث أو القيم

مثــــــــال:-



up:
if upkey()=1 and inkey$()="X" then
TEXT 10,20,"Up arrow & X r pressed"
WAIT 100
cls
goto up
WAIT KEY


إن تم الضغط على زرّ ي الــx و ^(السهم للأعلى) في نفس الوقت ستظهر لك رساله وتخبرك بإنه العمليّه صحيحه
# ملاحظه:-
ألم تلاحظوا عدم الخروج من نافذة البرنامج على الرغم من وجود أمر Wait key .
ذلك بسبب GOTO

وهنا جمله يمكنها التحسين في العمل وهي

select .......case.........endselect.........endcase.........Case default



select .......case.........endselect.........endcase.........Case default :

هذا النوع من جمُل الشرط يساعد على الأختيار بين عدة أمور أثناء تنفيذ الشرط بحسب القيم المُدخله أو الأحداثوهنا مثال يساعد على فهم الأمور بشكل أوضح
الكود شويّه طويل(قوم بلصق الكود وحاول أن تضع رقم من الصفر إلى العشره لتشاهد الجربنه بتاعك..........أقصد علامتك ^_^...
مثـــــــــــال:-



up:
input "your mark ",m
if m=10 or m=9 or m=8 or m=7 or m=6 or m=5 or m=4 or m=3 or m=2 or m=1 or m=0 then
select m
case 10
print "Exellent";
wait 2000
cls
goto up
endcase
case 9
print "Imprisseve";
wait 2000
cls
goto up
endcase
case 8
print "Very good";
wait 2000
cls
goto up
endcase
case 7
print "Good";
wait 2000
cls
goto up
endcase
case 6
print "Not bad";
wait 2000
cls
goto up
endcase
case 5
print "Acceptable";
wait 2000
cls
goto up
endcase
case 4
print "Failed";
wait 2000
cls
goto up
endcase
case 3
print "Dump ass";
wait 2000
cls
goto up
endcase
case 2
print "Empty tank";
wait 2000
cls
goto up
endcase
case 1
print "No comment";
wait 2000
cls
goto up
endcase
case 0
print "grban";
wait 2000
cls
goto up
endcase
endselect


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

Looping statements

هنا سنعرف كيفية التعامل مع جمل التكرار ومنها :
For...........next
While..........endwhile
Do.............loop
Repeat................until

For ...............next:
هذا النوع من جُمل الدوران محدود أي إنه عدد دورات التنفيد فيه يتم وضعها بحسب إحتياجاتك وتساعد كثيراً في العمل(عمليّه)ومتعددة الأستخدام.
ولها فوائد كثيره وسنذكرها
مثـــــــال:-



for a= 1 to 5
print "this statement will repeated in 5 lines"
wait 100
next a
wait key


في هذا الكود سيتم تكرار النص داخل جملة التكرار for........next خمس مرّات ,لاحظ المتغيّر a كُتب بجانبه من 1 إلى 5 وهي عدد
الدورات وتنفيد أمر الطباعه في كل دوره وبين كل دوره وأُخرى سيتأخر 100 مللي ثانيه لكي تتمكن من رؤية التنفيد بشكل بطيء لكي تتمكن من فهمه
لكن إن أزلت أمر wait 100 سيتم تنفيذهم بسرعه لدرجة إنهم سيظهروا وكإنهم عباره واحده(سطور الطباعه).
وهنا إستخدام أخر لجملة الدوران for.....next .



for a= 1 to 100
ink rgb(0,a,0),rgb(0,0,0)
print "this statement will repeated in 5 lines"
wait 100
next a
wait key


ستلاحظوا عند التنفيذ شاشه سوداء ولكن إنتظروا شويّه...............
أها بدأت الكتابه بالظهور وباللون الأخضر ..........كيـــــف؟
لاحظوا هذا السطر الموجود في نطاق جملة الدوران
ink rgb(0,a,0),rgb(0,0,0)
في قيم الألوان المتعلّقه في لون الخط ثاني قيمه وهي اللون الأخضر أستبدلناها بالمتغيّر a ,أعتقد إنه الأن عرفتم سبب بروز لون الخط بعد فتره
من تنفيذ الأكواد وهو بسبب مضاعفة القيمه للمتغير a في اللون الأخضر مع كل دوره(يمكنكم تجربتها مع باقي الألوان).
وهنا مثال أخر سيساعدكم مستقبلاً في تصميم لجزء معيّن من لعبه بمجرد مشاهدتكم لعمله في الواقع المثال موجود وحتفهموا قصدي.



color backdrop rgb(0,0,0)
for a= 1 to 5
make object sphere a,3
color object a,rgb(0,255,0)
position object a,rnd(3),rnd(3),rnd(3)
wait 200
next a
wait key


# ملاحظه:

إن قمت بعمل object في جملة for.....next تأكد من إن جميع الأضافات لهذا الــobject لهم نفس المتغيّر كما في المثال أعلاه
لإنه لو بتريدوا تلوين الــobjects الناتجه عن جملة الدوران سيطلب رقم الـobject وإن تم تحديد رقم محصور من 1 إلى 5 لن يعمل البرنامج
لإن التغيير يطبّق على كافة الobjects في اّن واحد لذا ستواجه الكثير من الأوامر الذي تطلب رقم الobject هنا يجب وضع المتغيير الرئيسي لجملة الدوران
في مكان رقم الــobject لكي يتم التعامل مع كافة الobjects في نطاق الجمله.

While(condition)...........endwhile:

هذا النوع من الجمل فعّال أكثر عندما يكون داخل جملة Do.......loop ,بإختصار شديد هذا النوع من الجُمل لايتم تنفيذ محتواه إلا إن كان الشرط صحيح

مثــــــــال:-



do
WHILE upkey()=1
print "up key r pressed"
wait 100
ENDWHILE
loop


في السطر الأول كُتب (طالما زر السهم للأعلى مضغوط أطبع الرساله "الزر للأعلى مضغوط") 1 هي قيمه تدل على إن الزر مضغوط.
السطر الثالث هو للأنتظار عند كل ضغطه يتم تكرار الجُمل.
أو يمكن كتابتها بالشكل التالي حتى لاتظهر كل تلك الجُمل بل جمله واحده فقط.



do
up:
WHILE upkey()=1
print "up key r pressed"
wait 100
cls
goto up:
ENDWHILE
loop


في هذا الكود إضافه بسيطه والغرض منها التحسين
السطر الذي يلي wait 100
cls يتم مسح الشاشه عندما تكون قيمة الضغط هي الصفر وتذهب إلى أعلى الكود حتى يتم التنفيذ من جديد ........

Repeat..........until(contitio)

هذه عكس الجمله الأولى ,أي إنها سيتم فيها الدوران لغاية شرط معيّن سيخرج من جملة
repeat.......until

مثــــــــــال:-



repeat
print "fsafsdfdsf"
wait 200
until spacekey()=1


في هذا المثال سيتم تنفيذ أمر الطباعه حتى يتم الضغط على زر space هنا سيتم الخروج من الجمله والبرنامج كمان.

Do...............loop:

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



do
print "hi montada";
loop


طبّق هذا الأمر وحاول أن تخرج منها من دون إستخدام زر الــــescape
لايمكنك ذلك أما زر الـescape تم وضعه للخروج لكي تخرج بشكل إعتيادي وتعود إلى واجهة التطبيق لكي تعدّل ماتريد
وهنا مثال أخر يتم فيه مزج if ........then و Do......loop



sync on:sync rate 60
color backdrop rgb(0,0,0)
make object cube 1,5
position object 1,0,0,20
do
if rightkey()=1 then
yrotate object 1, object angle y(1)+1
if leftkey()=1 then
yrotate object 1, object angle y(1)-1
sync
loop


عند الضغط على الأسهم الأيسر والأيمن بشكل مختلف تلاحظوا إن المكعّب بيتحرك بحسب الزر المضغوط حالما يتم التوقّف عن الضغط سيتوقف المٌكعّب عند أخر
نقطه تحرّك فيها.
وهناك الكثير من الجُمل الذي يتم مزجها وحتى جميعهم في نفس الــdo........loop .
وهذا مثال يمكنكم من عبره أن تتعلموا المزج بين الجُمل وفي نفس اللحظه أن تستوحوا فكره في العابكم إن شاء الله.
سيتم إستخدام الجمل الأكثر إستخداماً في العمل لذا لاتتعجبو من عدم وجود بعضها لإنها لاتلبّي الطلب أو إنها تستهلك الكثير من الكتابه.

*طريقة اللعب*
الأسهم للحركه
زر space للإيقاف.

# ملاحظه:

* هذا المثال تنقصه تحسينات بسيطه ويصبح لعبه تقريباً(لاتتوقّعوا الكثير من مثال بسيط وفيه نقص بسبب عدم توفّر الوقت,يمكنكم تحسينها وإكمال النُقص فيها ^_^)
* سأقوم برفع المثال على هيئة ملف dpo من عبره يمكنكم مراجعة الأوامر وهي نفس الذي ناقشناه سابقاً.
لن أقوم بكتابته هنا نظراً لعدة أسباب:
1)- بمجرّد كتابته وكإنني أعيد الذي كتبته أعلاه
2)- الوقت لايسمح لي كما إن الشرح أستغرقني 3ساعات متواصله
3)- أه........يبدوا إنني أتحدث كثيراً بالنسبه للمثال تجدوه في المرفقات.
أما بالنسبه للإستفسارات سيتم مناقشتها في المكان المتخصص بها وأرجو أن تبهرونا بالنتائج وأرى الكثير من أخواني في مجال تصميم الالعاب.
مع إنني لا أشعر بوجود أشخاص من مستخدمي الدارك .
أعتقد بهذا أنتهينا من جُمل الشرط والدوران إن شاء الله وأرجو من إن الشرح قد نال رضاكم...............:biggthump

Amir Imam
24-01-2008, 04:59 PM
بسم الله
ما شاء الله عليك .. انت فين من زمان يا عم .. حلو الدرس .. وحلو المثال .. اعتقد ان المثال ده بيشرح اولى خطوات عمل لعبة .. يعني ان شاء الله اللي هيفهمه هيكون مشي معاك في الشرح تمام
عندي اقتراح : لم لا تضع كل درس في موضوع مستقل حتى لا يضيع الباحثون ؟

The_source
24-01-2008, 06:43 PM
عندي اقتراح : لم لا تضع كل درس في موضوع مستقل حتى لا يضيع الباحثون ؟

i forgot about that
and sorry about speaking in english,because this stupid computer can't support arabic language......^_^.

kakarot
25-01-2008, 12:07 AM
مشكوور على الدرس بدها قرأة ثم تعليق ^^

The_source
25-01-2008, 04:53 PM
مشكوور على الدرس بدها قرأة ثم تعليق ^^


خذ راحتك ..............take your time

kakarot
25-01-2008, 07:08 PM
up:
if upkey()=1 and inkey$()="X" then
TEXT 10,20,"Up arrow & X r pressed"
WAIT 100
cls
goto up
WAIT KEY

مش كثير فهمت المثال
inkey$()="
القوس ما فائدته
و
لما نضع in key
فقط للأزرار "للحروف"
هل هذا صحيح ؟؟
ولماذا وضعنا $

The_source
25-01-2008, 08:21 PM
inkey$()="
القوس ما فائدته


وجود هذا القوس هو دلاله على وجود قيمه يتم تخزينها في هذا الأمر


in key
فقط للأزرار "للحروف"
هل هذا صحيح ؟؟
ولماذا وضعنا $

كلامك صحيح وإشارة $ لو بتلاحظ " " وجود إشارتي التنصيص هذا دلاله على إنه متغيّر من السلسه الحرفيّه (أي إنك ستدخل حرف بين الأشارتين)

لو كنت تتابع الدروس من البدايه لما وقعت في هذه الحيره ........x_x

PrinceOfSorrow
26-01-2008, 04:12 PM
السلام عليكم ورحمة الله وبركاته

بنسبة لتنسيق ان شاء الله سوف اقوم بتنسيق الدرس ولكن عند انتهاء من الدروس جميعها سوف اقوم بتنسيقها برد مستقل مني في هذا الموضوع مع وضع وصلة في الموضوع الأول

وذلك افضل

لذلك لاتقلق اخي العزيز تابع دروسك ونشاطك ^___________^

Prince Of Pain
28-01-2008, 05:40 PM
مشكور اخوي على المجهود العظيم....

وما شاء الله عليك ......

....د.ر.س.....ر.و.ع.ة.....^_^

اخوك >->->->->-> Mr.K

The_source
29-01-2008, 09:42 AM
مشكور اخوي على المجهود العظيم....

وما شاء الله عليك ......

....د.ر.س.....ر.و.ع.ة.....^_^

اخوك >->->->->-> Mr.K


هممممممممممم...........ظننت إنه كل من في المنتدى لايحب أن يعمل على الدارك بيسك لكن يبدو لي إن هناك بصيص أمل
وألف شكر على هذا الرد........

PrinceOfSorrow
29-01-2008, 11:53 AM
هممممممممممم...........ظننت إنه كل من في المنتدى لايحب أن يعمل على الدارك بيسك لكن يبدو لي إن هناك بصيص أمل
وألف شكر على هذا الرد........
الكل يريد ذلك ولكن مسألة تعلم ومعرفة الاساس فقط والمجسمات وانا من الذين يرغبون بصناعة للعبة على هذه للغة بدل عمل مكعبات :)
لاتتوقف عن ابداعك ^^

The_source
29-01-2008, 02:50 PM
شكراً على مرورك وتشجيعي أخي.........^_______^......

The_source
31-01-2008, 01:56 PM
السلام عليكم أخواني أنا عايز أنوّه لشيء قبل ما أضيف الدرس بتاعي بكره وهو عدم الرد
وإن شاء الله نخوض في أوامر الماوس وأشياء أخرى

mastergame
01-02-2008, 03:33 AM
اخي شكرا على كل ادروس فهمت درسين والدرس الاخير لم افه منه قط ارجوو ان تعطيلي نبذة صغيرة على الدرس
+
لا تتوقف استمر على هذى النحو

mastergame
01-02-2008, 04:41 AM
يالله لقد فهمة ادرس متى الدرس الاخر

mastergame
01-02-2008, 04:44 AM
اخي اشرح لي هذى الكود
sync on:sync rate 60
color backdrop rgb(0,0,0)
make object cube 1,5
position object 1,0,0,20
do
if rightkey()=1 then
yrotate object 1, object angle y(1)+1
if leftkey()=1 then
yrotate object 1, object angle y(1)-1
sync
loop
وشكراا

Amir Imam
01-02-2008, 06:25 PM
بسم الله
بعد اذنك اخي DBprog .. انا هارد عليه
يا اخ mastergame ارجوك ضع طلباتك في الموضوع المخصص .. خلي هذا الموضوع للدروس فقط حتى لا يختلط الامر
حط طلبك هناك وان شاء الله هرد عليك
وشكرا

The_source
02-02-2008, 11:14 AM
زي مابتحب أخي أمير^_^

mastergame
02-02-2008, 10:54 PM
ممتى الدرس الجديد

The_source
03-02-2008, 08:23 AM
بحب روح الحماس فيك أخي وإن شاء الله تبهرنا بأعمالك
بالنسبه للدرس الجديد سأرفعه اليوم مالم بكره بالكثير

mastergame
03-02-2008, 06:33 PM
اوكي في الانتضار يااستاد

The_source
05-02-2008, 10:41 AM
أحداث الفأره(mouse command)

أعرف إن البعض سيقول (من سيحتاج إلى هذا النوع من الأوامر ) هذا صحيح ولكن يكون لها فعاليّه في الألعاب البسيطه أو الألغاز في الألعاب
مثل(الكروت,ترتيب الأشكال...........إلخ) وهي أوامر قليله وسهله يمكن الأستفاده منها وذلك بجُمل الشرط والأدوات امساعده لها and & or
سنذكر هذه الأوامر ومنها

mousex() command:

وظيفة هذا الأمر هو أعطاء قيمه لحركة الماوس في المحور السيني
parameter:
return value=mousex()

mousey() command:

وظيفة هذا الأمر هو أعطاء قيمه لحركة الماوس في المحور الصادي
parameter:
return value=mousey()

mousez() command:

وظيفة هذا الأمر هو أعطاء قيمه لحركة الماوس في المحور العُمق(أي الزر أو العجله التي تتوسّط زرّي الماوس)
وهذا مثال ينفّذ الأوامر مع ظهور قيمها.
parameter:
return value=mousez()

mouseclick command:

وظيفته هو عرض قيمة الزر عند الضغط عليه أي أن:
1 = هي قيمة الزر الأيسر
2 = قيمة الزر الأيمن
3 = الأيمن والأيسر معاً
4 =العجله أ, الزر الذي يتوسّط الأيسر والأيمن
وهكذا عند الضغط على أي زر أو زرّين معاً يتم عرض قيمهم.
parameter:
return value=mouseclick()
مثـــــــــال:-


do
cls
x$=str$(mousex())
y$=str$(mousey())
z$=str$(mousez())
clk$=str$(mouseclick())
text 10,10,x$
text 10,20,y$
text 10,30,z$
text 10,40,clk$
if mouseclick()=1 then
text 320,240,"left button"
if mouseclick()=2 then
text 320,240,"right button"
if mouseclick()=3 then
text 320,240,"left & right button"
if mouseclick()=4 then
text 320,240,"middle button"
if mouseclick()=5 then
text 320,240,"left & middle button"
if mouseclick()=6 then
text 320,240,"right & middle button"
if mouseclick()=7 then
text 320,240,"right & middle & left button"
loop




http://www.m5zn.com/uploads/4c4f0053fa.JPG (http://www.afra7.net/vb/)

mousemovex () command:

وظيفته هي إظهار القيمه منذ أن تحرك الماوس من نقطة البدايه إلأى أخر نقطه وقفت أنت عليها(طبعاً هذا في نطاق المحور السيني)
ملاحظه :
نفس الغرض مع الأوامر الذي تحمل نفس عنوانه mousemovey() and mousemovez()
parameter
return value = mousemovex ()
كما إن هذا الأمر بالكاذ إنك تشاهد مخرجاته لإنه في جملة دوران جرب



do
cls
print mousemovex()
loop


هنا بعض الأوامر الفعّاله الذي يمكن الأستفاده منها عند تصميم الألعاب....ألم يتسائل البعض ويقول (لماذا يظهر زر الماوس في الألعاب.....أنا لا أريده أن يظهر...)؟
عندها يمكنك أستخدام الأمر

Hide mouse command:

بمجرد وضعه في بداية السطر ستلاحظ إن زر الماوس قد أختفى والأمر لايطلب إدخال قيم أو يقوم بإخراجها فقط يتم وضعه كما هو مبيّن لك على العنوان ..........وهناك أمر عكسه أيضاً وهو
Show mouse:

هنا أنتهينا من أوامر الماوس وكما إنه هناك أمثله مفيده يمكنك من عبرها أن تقتبس أفكار (في المرفقات)
وأي نقطه غير مفهومه في المرفقات سيتم مناقشتها في القسم المتخصص لها

أمر Data & Read:

هذه الأوامر نافعه في النصوص وفي برمجة الألعاب, والغرض الأصلي منها جدوله أ, فهرسة المتغيرات عند ظهورها وهنا في الصوره التاليه ستتوضّح الفكره إن شاء الله حول هذا النوع من الأوامر
http://www.m5zn.com/uploads/5ee77428e5.JPG (http://www.afra7.net/vb/)
وأرجو إنكم أستفدتوا منه
إن شاء الله في القريب العاجل سيتم رفع دروس في مواضيع متقدّمه (الجزيئات +التعامل مع المجسمات ثلاثيّة الأبعاد بشكل كبير).

mastergame
05-02-2008, 04:16 PM
جري قراءة الدارس

mastergame
05-02-2008, 06:12 PM
اخي شكرا لقد فهمت الدرس العلى وام الذي تحته لام افهم
+
منفعه هذى مئقصد
http://www.m5zn.com/uploads/5ee77428e5.JPG (http://www.afra7.net/vb/)

شكرا ياستاد
+
هاهوا اميلي ارجوو ان تقبلني لتكلم معك
mastergame@live.fr

kakarot
05-02-2008, 09:18 PM
مشكور على الدرس المفيد الجميل
وهناك عندي بعض الأسئلة المتعلقة في هذا الدرس في موضوع الإستفسارات عشان ما اخرب الموضوع
ولك مني جزيل الشكر
ودمتم بخير وسعادة

The_source
06-02-2008, 09:32 AM
هاهوا إميلي وأرجوا أن تقابلني لأتكلم معك

أنا إيميلي على الماسنجر هوتميل وستجده عند صورتي الشخصيّه

PrinceOfSorrow
09-02-2008, 02:12 PM
اخوي العزيز DBprog تم تغير خطة كاملة
ممكن ترسلي روابط الردود المهمة فقط التي تريد ان تبقيها وانا سوف اعمل موضوع جديد واضع اسمك عليه واحط دروس بترتيب مع مرفقات لو وجد واحطه في قسم مواضيع المميزة لقسم صناعة ألعاب

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

The_source
10-02-2008, 08:23 AM
موافــــــــــــق
إن كان سيتم نقله إلى قسم المواضيع المميزه سيكون أفضل إن كان بدون ردود ومغلق ومن معاه مشكله ولم يفهم الدرس ممكن مناقشتها في القسم المختص
هكذا أفضل وشكراُ على إهتمامك

العضو الخارق
04-04-2008, 01:07 AM
هل تم الانتهاء من الدروس يا غالى
ام انت الان مشغول لذلك لا يمكنك المتابعة فى وضع الدروس ؟؟؟

The_source
05-04-2008, 09:59 AM
أن كانت معاك مشكله أو شيء تصعب عليك أخبرني به.....أما بالنسبه للدروس هي أنتهت ولكن سأرفع دروس وهي عباره عن أمثله فيها أفكار لكي تعمل لعبتك وستكون في القريب العاجل إن شاء الله لأسباب

العضو الخارق
05-04-2008, 03:25 PM
الله المستعان يا غالى
وبالنسبة للدروس فأنا الصراحة لم ابدء فيها بشكل جدى
وانما اطلعت عليها ، قريب ان شاء الله راح ابدء فى التعليم :):)

العضو الخارق
05-04-2008, 03:41 PM
مشكور يا غالى على التوضيح
اما بالنسبة للدروس فانا لم ابدء بشكل جدى فيها
ولكن قريبا سأبدء :)

العضو الخارق
05-04-2008, 03:49 PM
مشكور يا غالى على التوضيح
اما بالنسبة للدروس فانا لم ابدء بشكل جدى فيها
ولكن قريبا سأبدء :)

KDRE
12-05-2008, 05:08 PM
.

DBprog

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


الف شكر لك ويعطيك الف عافيه


كل التحيه

The_source
12-05-2008, 05:16 PM
.

DBprog

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


الف شكر لك ويعطيك الف عافيه


كل التحيه


مشكور أخي الكريم على ردّك ..........لكن أتمنى إنك قرأت الموضوع بتمعّن وبدأت تعمل