مشاهدة النسخة كاملة : درس :توقع الاتحام


المسافر
07 Feb 2002, 05:03 AM
السلام عليكم
هذا الدرس اسمه بالانجليزي
Collision Detection in Flash 5
ويبحث عن طريقة تحقق شكل يتبع الماوس لشكل اخر دون الاعتماد على المحور السيني والمحور الصادي
1-افتح ملف جديد
2-بالخطوة3و4 سوف نعمل شكل يتبع الفارة (وأنا اخترت شكل سفينة)
3-افتح فيلم عن طريقnew/new symbol واختار movie ثم اسحبه لسطح العمل وعن طريق شاشة Instance ضع اسمه ship
4-اختار الفريم الأول من المشهد الأساسي وافتح شاشة ألا كشن وضع الكود
startDrag ("_root.ship", true);
وذلك عن طريق expert mode
وإذا استخدمت normal mode
اضغط على startDrag
وفي خانة target نكتب _root.ship
ونتأكد أن علامة صح بالمربع الذي بجوار Lock mouse to center
وهنا نعمل تجربة للفيلم فإذا كان الشكل الذي رسمته يتبع الفارة فعملنا صحيح أو تأكد من الخطوات السابقة
5-نعود إلى فيلم shipونضع بالفريم واحد ألا كشن stopوبالفريم ثاني ونرسم انفجار
ثم نحوله إلى زر للإعادة عن طريق insert/ convert to symbolونختار button
ثم نضغط على شكل الانفجار ونضيف الكود التالي
on (release) {gotoAndPlay (1);}
حتى يعود إلى شكل السفينة

6-ألان نبدأ بتجهيز اللغم

7-افتح فيلم ثاني عن طريقinsert/new symbol واختار movie ثم اسحبه لسطح العمل وعن طريق شاشة Instance ضع اسمه enemy

8-في داخل فيلم enemy في الفريم الأول نضع الكود التالي

flag = this.hitTest("/ship");
if (flag == true) {tellTarget ("/") {gotoAndStop ("hit");
}}if (flag == true) {tellTarget ("/ship") {gotoAndStop (2);}}
9-ولكي نجعل الكود هذا نشط نضغط على الفريم واحد ثم F5 حتى نضيف فريم ثاني
10-ألان نجرب الفيلم
وهذا الفلاش يوضح كيفية الدرس
ومثل ما ذكرت بالدرس السابق ان الملف الرفق فيه الدرس مكتوب وايضاً الملف الفتوح ولكن ان تدرسه وتضيف اي شئ وننتظر اخي الكريم منك المشاركة
width = 550 height = 400
بالتوفيق
والسلام

الحنان
07 Feb 2002, 09:55 AM
ما شاء الله عليك يا مسافر درس جميل جدا ما شاء الله عليك ها شوفه و ركز و بعدين ابدا في الاسئلة تمنياتي لك بالتوفيق

الشهاب الحارق
07 Feb 2002, 06:30 PM
السلام عليكم

التحقق من التصادم

وهو كما ذكر اخي المسافر بالضبط ودرجت العاده على إستخدام

هذا الأمر المخصص للأفلام movieClip والذي اسمه hitTest()

يراد به معرفة هل الجسم صدم الجسم الأخر مثل هل الرصاصة إصابة

العدو أو هل الليزر أصاب المركبة الفضائية وهكذا

وهذه تركيبته النصية

MovieClip.hitTest
Syntax
anyMovieClip.hitTest(x, y, shapeFlag);
anyMovieClip.hitTest(target);


حيث الإحداث السني للجسم المراد الاختبار عليه وكذلك بالنسبة للإحداث الصادي x, y,

أما shapeFlag فهو معلوم لدى المبرمجين أن كلمة Flag تشير إلى أنها في طور اختبار

لمعرفة القيمة Boolean صح أو خطأ وعلى إثر ذلك تكتب المعادلة

فهي توضع كقيمة في البداية true أو false

لنفترض أننا جعلنا القيمة في البداية false

فإذا تم تصادم الجسم فتصبح القيمة true

وينفذا باقي الأمر من زيادة في النتيجة بالنسبة للعبه أو غيرها

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

If(this.hitTest(anamy) {

Dosomething

}

وهنالك أمر أخر اسمه getBounds()

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

يقول المبرمج Phillip Kerman أن الأمر hitTest() افضل واكثر دقه

هذا والله أعلى واعلم

tamimi
08 Feb 2002, 04:30 PM
لسلام عليكم
شكرااا اخوي على هذا الشرح الوافي وهو باعتقادي مفيد لصناعة الالعاب :)
سوف اطبق الدرس
سلام عليكم