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

مشاهدة النسخة كاملة : دورة c-script الدرس الخامس (الارقام والنوافذ)



ديمو1
28-09-2008, 03:07 PM
بسم الله الرحمن الرحيم نبدء درسنا لهذا اليوم وهو عن كيفية كتابة الارقاموصنع النوافذ:

الأرقام والنوافذ
الأرقام
حسناً لقد عرفنا كيف نقوم بكتابة اللوحــات لنتعرف الآن كيف نكتب الأرقام لاحظ المثال التالي:

////////////////////////////////////////////////////////////////////

PANEL first_pan
{
digits (410, 200, 2, _a4font, 1, sys_seconds);
flags = VISIBLE;
}

/////////////////////////////////////////////////////////////////////
أَحب الأمثلة القصيرة، لَكنِّي أَرى شيءَ غريبَ هنا: اعتقدت ان تعريف اللوحــات يجب ان يتضمن bmap = some_bitmap; ، وa pos _x وpos _y لتحديد الموقع! حَسناً. . . إذا أنت لَسْتَ بِحاجةٍ إلى صورة للوحتك هذه أنت لَسْتَ بِحاجةٍ إلى أَنْ تُضيفَ ذلك السطر مِنْ الأكواد. ماسنعرضه هنا هو ارقام فقط لذلك نحن لسنا بحاجة الى الصور!!

دعنا نشرح هذا السطر من المثال اعلاه:


digits (410, 200, 2, _a4font, 1, sys_seconds);

- "digits" الكلمة الدليليةُ التي يجب ان نستعملها عندما نريد عرض رقم على الشاشةِ؛

- العددان الأولان يعنيان الموقــع pos_X=410 pos_y=200 وهما ضروريان لعرض الارقام على الشاشة...

- 2. في هذه الحالةِ هي فقط 99 رقمان فقط بينما عندما نستبدله بالرقم خمسه فانه سيعرض الاعداد التي تصل الى 99.999
هكذا ستصبع معقدة حي ستعطينا الكسور العشرية.....
-_a4font , مجموعة من الخطوط التي نستعملها لعرض الارقام......؛

- 1 عامل المضاعفه اي بمعنى ان العدد يزيد 1 كل ثانية يمكنك استعمال اكبر ااذا كنت تريد استخدامها بزيادة 7 اعداد مثلاًِ؛

- أخيراً ,sys_seconds اسمُ المتغيّرِ الذي سَيَعْرضُ. أنت يمكن ان تستبدله باي متغير آخرسواء انت انشئته او افتراضيات قدمها البرنامج...

حسنناً بعد ان قمنا بشرح الكود لنرى كيف نكتب الكود لاظهار الارقام بشكل عام:


digits (x, y, format, font, factor, variable);

(ملاحظة: في الأكواد القديمةِ التي أنت سَتَجِدُه مكتوب في أغلب الأحيان بشكل مختلف،مثل
"digits = x, y, format, font, factor, variable;" في أكثر الحالاتِ الأخرى، يَقْبلُ المحرّكَ أساليبَ كتابة مختلفةِ هنا التي تَنْتجُ مِنْ التأريخِ القديمِ لAcknex).


دعنا نقوم باجراء تدريب عملي بسيط...
افتح برنامج sed وقم بكتابة الكود التي وحفظه:

////////////////////////////////////////////////////////////////////

var video_mode = 7; //800*600 بكسل
var screen_color[3] = 150,0,0;//ازرق غامق

////////////////////////////////////////////////////////////////////

PANEL first_pan//تعريف اللوحة عرفنا شرحا له بالدرس السابق
{
digits (410, 200, 2, _a4font, 1, sys_seconds); //شرحناه بالاعلى لأضهار الارقام
flags = VISIBLE;//لاظهار اللوحه
}

/////////////////////////////////////////////////////////////////////

قم بتشغيله ولاحظ ماذا سيظهر سيظهر لك عداد ثواني يتحرك مثل تحرك وقت ثواني ساعة الكمبيوتر....

الآن لنقم بصنع ساعة تسير مثل وقت الكمبيوتر.......
قم بكتابة هذا الكود:

var video_mode=7;
var screen_color [3]=150,0,0;

panel first_pan
{
digits(50,60,2,_a4font,1,sys_hours);//أظهار الوقت بالساعات
digits(70,60,2,_a4font,1,sys_minutes);//اضهار الوقت بالدقائق
digits(90,60,2,_a4font,1,sys_seconds);//أظهار الوقت بالثواني
flags = visible;
}
ثم قم بحفظه
ولاحظ ماذا سيظهر.....

307912


تدريب:قم بجعل الساعة تضهر فوق صورة انشئناها لتوضيح اكثر انضر للصورة ادناه:
307913

ديمو1
28-09-2008, 03:12 PM
النوافذ ويندوز
انا هنا لا اتحدث عن نظام التشغيل ؛ أُريدُ اخبارك فقط كيف نقوم بصنع نافذة باللعبة , ونقصد بالنوافذ هنا هي المتغير الذي نستخدمه لعرض جزء من الصورة. إذا كنت لست متأكد بان هذذه النوافذ مفيدة للعبتك لنرى الان، فالنوافذة ستفيدك مثلاً عندما تريد صنع بوصلة(بأتجاه اليمين او اليسار)او عندما تريد صنع شريط الصحة او الرصاص شاهد معي مثال لشريط الصحة:

http://c.imagehost.org/0013/1_21.jpg



دعني اريك كيف تعمل هذه النوافذ عندها انت يمكنك ان تحدد فيما تحتاجها:

دعنا نَتخيّلُ بأنّنا نُريدُ إسْتِعْمال مصباح كاشف بلعبتنا,ونريد عرض شريط بسيط للبطارية فعندما تكون البطارية ممتلئة يضهر لنا صورة خضراء وعندما تكون البطارية تشتغل يظهر لنا صورة صفراء وعندما لايوجد شحن بالبطارية يظهر لنا صورة حمراء هل فهمت علي
شاهد الصور:
http://c.imagehost.org/0205/shr7.jpg

http://c.imagehost.org/0808/shr7.jpg

http://c.imagehost.org/0087/shr72.jpg
بالطبع انه عندما تتنقل اشرطة بطارية الكشاف بهذه الطريقة سيعطي اللعبة طابعاً جميلاً اليس كذلك:؟؟!
http://c.imagehost.org/0519/shr72.jpg


لاتقلق من صعوبة الامر فهذا كله يمكن ان يصنع من صورة بسيطة مثل هذا:http://c.imagehost.org/0597/shr72.jpg


هذا يجعل من النافذة تظهر الموضوع عليه مربع فقط وكلما نقصت نسبة البطارية نقص هو معها.:

http://c.imagehost.org/0982/shr72.jpg

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

الان لنقم بتصميم مقياس ارتفاع لطائرتنا يشبه هذا :
http://c.imagehost.org/0013/shr7.jpg

نحن سنحتاج هنا الى صوره تشبه هذه
http://c.imagehost.org/0739/shr7.jpg

ملاحظة*حمل الصورة والفريم من المرفقات*

نحن طبعا لانحتاج ان تظهر النافذة كلها بل الارتفاع الذي نريد فقط!!؟ مؤكد انك ستقول لي كيف اكمل وهتعرف ان شاء الله...
قم بفتح برنامج Sed واكتب الكود التـــالي:

///////////////////////
//بسم الله وعلى بركة الله
//////////////////////

var video_mode=7;
var screen_color[3]=150,0,0;

var meter=0;//متغير الارتفاع

panel plane_meter//شرحناها بالدروس السابقة
{
bmap = "frame.pcx"; //صورة الفـريم

window (40, 10, 178, 160, "height.pcx", 0, meter);//نافذة الارتفاع المتغيرة
flags=visible;//لاظهار اللوحة
}
وقم بحفظه بنفس المجلد الذي وظعت به الصور
وقم بتشغيله
ثم اظغط على زر tab بلوحة المفاتيح واكتب meter=150 وشاهد النتيجة

لنعرف الان كيف نعرف اي نافذة خطوة بخطوة:




window (x, y, size_x, size_y, bitmap, variable_x, variable_y);

- window الكلمة الدليلية التي يجب ان نعرفها كل مرة عندما نريد وضع ناذة باللعبة؛

- x وy يَعطي موقعَ النافذةِ على الوحة. إذا اللوحة عندها القيم التالية مثلا pos _x = 200 وpos _y = 100 ونافذتنا لَها x = 30 وy = 20، الصةورة التي استعملناها ستوضع في الموقع x = 230 وy = 120 على الشاشةِ.

- size _x وsize _y يعطي حجم النافذة في اللعبة على x وy. تذكّرْ بأنّ صورة النافذةَ بنفسها ضخمةُ؛ هذه الأرقامِ سَتَضِعُ حجمَ الجزءِ المرئيِ للصورة على x وy؛

- bitmap اسم يعرف مثل bmap لاكن دون كتابة الكلمة الدليلية بل كتابة اسم الصورة مباشرة وهي صورة النافذة التي سنستخدمها، ِ في مثال الارتفاع استخدمنا الصورة (height_pcx)؛

- variable_x يَعطي التحريك الأفقيَ لصورة النافذة. نحن لا نُريدُ تَحريك الصورة الحمراءِ إلى اليسارِ أَو إلى اليمين لذا نَستعملُ صفر هنا؛

- variable_y يَعطي التحريكَ العموديَ لصورة النافذةِ. نُريدُ تَحريك الصورة الحمراءِ فوق وأسفل لذا وَضعنَا متغيّر هنا (meter).

تدريب: لايوجد تدريب قم بالتدرب على نوافذ تقوم بتصميمها مثل الصحة

الدرس القادم الأزرار وأشرطة التمرير

Kamuri-San
29-09-2008, 12:20 AM
عندي كلمتين بس
انت جباااااااااااااااااااااااااااااااااااار
في امان الله

Game baker
29-09-2008, 12:23 AM
لي عودة بعد فهم الدرس جيدا

Game baker
29-09-2008, 12:40 AM
أخي روعة على روعة

لكن ..مازبطت معاي صورة الطاقة وكذا..

دائما يطللع لي خطأ ...

حتى سكربتك فيه خطأ ؟!

تأكدت من وضع الصور وكل شيء ولكن هناك خطأ..

الارقام فهمتها جيدا وطبقتها

بالنسبة الى تدريب الارقم عملته والتنجية ^^ مو سيئة

أرجوا الحل

Game baker
29-09-2008, 12:54 AM
نجح كل شيء تمام

تطبيق التدريب في المرفقات

في الرد القادم تطبيق الطاقة ...راح أعمل دواء

Game baker
29-09-2008, 01:08 AM
تم عمل التدريب
الثاني
وهو فقط تجربة

مشكور على الدروس

ديمو1
29-09-2008, 12:53 PM
عندي كلمتين بس
انت جباااااااااااااااااااااااااااااااااااار
في امان الله




مشكور على الرد المشجع جدا :biggthump
في امان اللع

أخي روعة على روعة

لكن ..مازبطت معاي صورة الطاقة وكذا..

دائما يطللع لي خطأ ...

حتى سكربتك فيه خطأ ؟!

تأكدت من وضع الصور وكل شيء ولكن هناك خطأ..

الارقام فهمتها جيدا وطبقتها

بالنسبة الى تدريب الارقم عملته والتنجية ^^ مو سيئة

أرجوا الحل

ماادري صراحه تاكد جيدا الفاصلة المنقوطة لاتنساها ابد

نجح كل شيء تمام

تطبيق التدريب في المرفقات

في الرد القادم تطبيق الطاقة ...راح أعمل دواء

تطبيق ممتاز ورائع لك مستقبل باهر ان شاء الله


تم عمل التدريب
الثاني
وهو فقط تجربة

مشكور على الدروس

تجربة جيدة

واصلوا جميعا والى اللقاء

BladeII
25-10-2008, 06:40 PM
مشكوووووووووووووووووووووور وبارك الله بيك.............

........................

Prince Of Pain
26-10-2008, 04:09 PM
ممتااااااز جداااا

موضوع مميز

موفق في الدوره