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

مشاهدة النسخة كاملة : (درس) عمل انعكاس عن شلال



Edge Rossman
24-08-2008, 03:36 PM
سأقوم بعرض كيفية عمل انعكاس بسيط للشخصية عن شلال و ذلك كالتالي:

الفكرة:
عمل انعكاس على سطح الشلال و المياه عند الإقتراب منها و ذلك باستخدام عدد من المفاتيح ( Switches ) و الأحداث ( Events )

العمل:

سوف ابدأ بابسط الأفكار و هي فكرة ظهور الصورة او الإنعكاس على الشلال عند الإقتراب منه و اختفائها عند الإبتعاد عنه, و لهذا الأمر سنحتاج إلى 3 احداث ( Events ) سأرقمها 1, 2, 3 كما سنحتاج إلى مفتاحين ( 2 Switches ) سأسميهما : near و away

-- المتطلبات:
3 حدث Event
2 مفتاح Switch

-- العمل: ابدأ بعمل شلال على سبيل المثال و انصح باستخدام الشلال الموجود في خريطة رقم 4 و هي خريطة الجبل كما في الصورة:
http://i265.photobucket.com/albums/ii227/medosarwat4/1-2.jpg


حيث يكون لدينا مساحة كافية لتحرك الاعب افقيا 3 خطوات ذهابا و ايابا على ان تكون الحافة على بعد خطوة واحدة من الشلال

بعدها ننتقل لوضع الأحداث حيث سنبدأ من الأسفل إلى الأعلى بوضع الأحداث 1 , 2, 3 على الترتيب كما في الصورة:

http://i265.photobucket.com/albums/ii227/medosarwat4/2-2.jpg


فيكون لدينا مكان بداية اللاعب و من ثم الحدث الأول فوقه و من ثم الحدث الثاني فوق الأول و الثالث على مكان وصول الشلال إلى النهر..

نبدأ بإعداد الأحداث, و نبدأ بالحدث رقم 1:
كما في الصورة:
http://i265.photobucket.com/albums/ii227/medosarwat4/3-2.jpg

و نجد ان الحدث رقم 1 مكون من صفحة واحدة, و شرط التشغيل هو Player Touch اي عند ملامسة اللاعب للحدث يتم تشغيله و تنفيذ اوامره, و الأوامر كالتالي:
@> Control Switches: [0001: near] = Off
و هذا الأمر يقوم بإغلاق المفتاح ( Switch ) المسمى near لأن اللاعب عند الحدث رقم 1 يكون مبتعدا عن الشلال فلن تظهر صورته و الأمر الثاني هو:
@> Control Switches: [0002: away] = On
و بهذا الحدث نقوم بتشغيل المفتاح المسمى away و هو يعني ان الاعب بعيد عن الشلال, و سنعلم لماذا نستخدم مفتاحين متناقضين للمهمة نفسها و المعنى نفسه

الان قم بالضغط على OK لتأكيد الأمر و من ثم لننتقل للحدث التالي و هو الحدث رقم 2 و لنر مكونات اوامره
http://i265.photobucket.com/albums/ii227/medosarwat4/4-1.jpg


نلاحظ ان هذا الحدث ايضا مكون من صفحة واحدة, و شرط تشغيله هو Player Touch لملامسة اللاعب, لكن اوامره معاكسة للأوامر السابقة في الحدث رقم 1 حيث انها:
@> Control Switches: [0001: near] = On
@> Control Switches: [0002: away] = Off

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

الان ننتقل للحدث الاخير رقم 3 و الذي يتكون من:
http://i265.photobucket.com/albums/ii227/medosarwat4/5-1.jpg


http://i265.photobucket.com/albums/ii227/medosarwat4/6-1.jpg


نلاحظ الان ان هذا الحدث يتكون من صفحتين ( للحصول على صفحة اوامر جديدة نقوم بالضغط على زر : New Event Page
http://i265.photobucket.com/albums/ii227/medosarwat4/7-1.jpg


الان الخصائص كالتالي:
الحدث يتكون من صفحتين, و الشرط واحد للصفحتين و هو action button فلا يهم لأن الحدث نفسه لا يحوي اوامر بل الصورة التي تظهر هي الأهم..
في الصفحة الأولى نجد ان شرط التشغيل اسفل Conditions هو المفتاح Switch المسمى away.. فهذه الصفحة لا تحتوي على صورة و هذه الصفحة من الأوامر ستكون فعالة عندما يكون اللاعب بعيدا عن الضفة اي ملامسا للحدث رقم 1
الصفحة الثانية تحتوي على شرط التشغيل و هو المفتاح near حينما يكون فعالا, و هذا يعني ان اللاعب عند الضفة و قد لامس الحدث رقم 2
لاحظ ان في الصفحة الثانية تم اختيار الصورة الخاصة بالحدث كالتالي:
http://i265.photobucket.com/albums/ii227/medosarwat4/9-1.jpg


نلاحظ للوهلة الأولى انني اخترت صورة الشخصية الإفتراضية , و يمكنك اختيار الصورة التي اخترتها لشخصيتك بالطبع إن كنت تريد تغييرها, ما يهمنا هو تغيير مقدار التعبئة Opacity إلى قيمة اصغر من القيمة الإقتراضية 255, و في هذه الحالة اخترت 100 حتى يعطينا شكلا مشابها لشكل الإنعكاس لأن الإنعكاس ليس واضحا بشكل كبير على الشلال, بعد اختيار الشخصية نحفظ العمل و نقوم بتجربته

و لتجربة العمل حمل الملف من هنا :
http://www.4shared.com/file/60254054/e7c50282/test.html


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

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

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

Noor Xp
24-08-2008, 03:58 PM
السلام عليكم

درس جميل جداً وسهل وذو فائدة كبيرة لكن حيطلب مجهود كبير لازم عليك الان وضع ايفنت حول البحيره وفيها
المهم الدرس غني عن التعريف ومفيد...................
ننتضر المزيد منك
سلام

Edge Rossman
24-08-2008, 06:17 PM
مرحبا جميعا, اعود ثانية لشرح الجزي الثاني من هذا الدرس و هي الطريقة الإحترافية لعمل انعكاس الشلال
الان سوف نغير من اشياء كثير, و لنعلم الأساسيات و المتطلبات سوف نحتاج
-- حدث القرب من الضفة ( العدد يعود لصاحب اللعبة و حسب الخريطة )
-- حدث البعد عن الضفة ( العدد يعود لصاحب اللعبة و حسب الخريطة )
-- حدث صورة الإنعكاس ( عدد 1 )
-- حدث الملاحقة لصورة الإنعكاس ( عدد 1)
-- مفاتيح ( Switches ) عدد 6 مفاتيح بالأسماء:
= away
= near
= phasing left
= phasing right
= mirroring
= not mirroring
-- متغير ( عدد 2 متغير بالأسماء التالية : )
= player x
= constant

الان.. لننظر للصورة العامة للأحداث التي سوف نستخدمها على الخريطة بشكلها النهائي:
http://i265.photobucket.com/albums/ii227/medosarwat4/1-3.jpg

نلاحظ التالي:
اللون الأحمر: احداث الإقتراب من الضفة, و عددها كما اوضحت ليس مهما لأنه عائد لصاحب اللعبة
اللون الأزرق: أحداث الإبتعاد و عددها غير مهم ايضا
اللون الأصفر ( في الزاوية اليسرى ): حدث متابعة الإنعكاس
اللون البني ( على الشلال ): حدث الإنعكاس نفسه
حرف S: مكان بدء اللاعب كالعادة و يمكن وضعه في اي مكان فلا يهم لأنه إن تم تطبيق الدرس بشكل صحيح سوف نحصل على ملاحقة من الصورة للاعب و تظهر في نفس المكان الذي يقف فيه و ايضا بنفس الوضعية ( ينظر للأعلى, لليمين, لليسار ) و هكذا..

الان.. لنبدأ برؤية ما تحويه الأحداث
-- حدث الإقتراب:
http://i265.photobucket.com/albums/ii227/medosarwat4/2-3.jpg

حدث الإقتراب يتكون من صفحة واحدة, و لا يحتوي صورة, و شرط تشغيله Player Touch و هو لمس اللاعب للحدث ( اي المشي عليه )
و الأوامر الاساسية جميعها تحكم بالمفاتيح Switches فنفعل المفتاح ( not mirroring ) لأننا سنتوقف عن عرض صورة الإنعكاس عند ابتعاد اللاعب عن الضفة, كما اننا سنفعل المفتاح ( away ) حتى نخفي صورة الإنعكاس عن الشلال
و في الوقت نفسه, علينا بإغلاق جميع المفاتيح الأخرى :
Mirroring
Near
Phasing right
Phasing left

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

ننتقل للحدث التالي و هو

-- حدث الإقتراب

http://i265.photobucket.com/albums/ii227/medosarwat4/3-3.jpg

الحدث كما نرى مكون من صفحة واحدة, دون صورة, و شرط التشغيل هو Player Touch ايضا و يحتوي على اوامر خاصة بالمفاتيح ايضا, و هنا نلاحظ اننا قمنا بتفعيل المفتاح ( mirroring ) لأننا سنبدأ بعكس صورة الان و ملاحقتها ايضا, و سنوقف المفاتيح :
Not mirroring
Away

و نلاحظ اننا الان سنستخدم و نحدد متغيرا هو player x او موقع اللاعب الصادي لأننا نحتاج لملاحقته افقيا على امتداد النهر و الشلال بينما يظل الإحداثي السيني ثابتا على الدوام

الان للحدث الخاص بالإنعكاس :

http://i265.photobucket.com/albums/ii227/medosarwat4/6-2.jpg

http://i265.photobucket.com/albums/ii227/medosarwat4/7-2.jpg

http://i265.photobucket.com/albums/ii227/medosarwat4/8-1.jpg

http://i265.photobucket.com/albums/ii227/medosarwat4/9-2.jpg

الان, الحدث يسمى IMAG و يفضل حفظ الإسم الذي تسميه من اختيارك لأنك ستستخدمه لاحقا
هذا الحدث يحتوي 4 صفحات اوامر, لكنها خالية من الأوامر حقا لأننا سنستخدمها لانعكاس الصورة
الان:

الصفحة الأولى: تحتوي على صورة خاوية و شرطها تشغيل المفتاح away
الصفحة الثانية: تحتوي صورة اللاعب ينظر لأسفل و شرطها تشغيل المفتاح near
الصفحة الثالثة: تحتوي صورة اللاعب ينظر لليسار و شرطها تشغيل المفتاح phasing left
الصفحة الرابعة: تحتوي صورة اللاعب ينظر لليمين و شرطها تشغيل المفتاح phasing right
ملاحظة: كل الصور تعبئتها opacity اقل من القيمة الإفتراضية 255 اي 100 او رقم مناسب من اختيارك لإظهار تأثير الإنعكاس

هكذا ننتهي من الحدث الخاص بالإنعكاس



الان, ننتقل لحدث اخر و هو حدث المتابعة

-- حدث المتابعة ( اللون الأصفر )

http://i265.photobucket.com/albums/ii227/medosarwat4/4-2.jpg

http://i265.photobucket.com/albums/ii227/medosarwat4/5-2.jpg

الان لدينا عمل متقدم بعض الشيء, نلاحظ ان هذا الحدث مكون من صفحتين,

= الصفحة الأولى: تحتوي على شرط تشغيل هو تشغيل المفتاح : not mirroring و هذا يعني اننا لن نتابع او نعكس صورة اللاعب عن الشلال حينما يكون بعيدا عن الضفة
= الصفحة الثانية: يبدأ عملنا هنا حيث اننا نلاحظ ان شرط التشغيل هو تشغيل المفتاح: mirroring و هو بدء العكس و الملاحقة للصورة , كما ان المفعل trigger لدينا هو التوازي او Parallel لأننا نريد ان يظل الحدث مستمرا طالما اللاعب قرب الشلال فتعكس صورته و تلاحق على طول الشلال و طوال الفترة التي يكون فيها امامه
نلاحظ الان الأوامر المهمة لدينا و هي:
Control Variable [0002: constant] = 2
هنا نحدد القيمة الثابتة لموقع الإحداثي السيني و هو الخط الذي يسير بمحاذاة النهر او الشلال, و بالطبع يمكنك تحديده من خلال معرفته على الخريطة ( ملاحظة: في المثال لدي الثابت هو 2 )
اما الان فنشاهد الأمر التالي:
Set event location [IMAG], variable [0001] [00002]
حسنا, لنشرح هذا الأمر, هنا نخبر البرنامج ان يغير مكان حدث انعكاس الصورة و الذي اسميناه IMAG في مثالنا بالإحداثيات التالية: الإحداثي السيني ثابت فلن نتحرك للأعلى و الأسفل و هو رقمنا الثابت 2 , اما احداثنا الصادي متغير و هو مساو لإحداثي اللاعب الصادي الحالي
الأوامر الثلاثة التالية كلها جمل شرطية, نبدأ بالأولى
Conditional branch: player is facing left
Control switches [0004: phasing left] = on
Control switches [0007: phasing right] = off
Control switches [0002: near] = off
هذا الأمر ينفذ مجموعة من العمليات في حالة إذا ما كان اللاعب ينظر لليسار, حيث يقوم بإيقاف المفاتيح: pashing right و near و يفعل المفتاح phasing left ليظهر صورة الإنعكاس لليسار
يليه هذا:
Conditional branch: player is facing right
Control switches [0007: phasing left] = on
Control switches [0004: phasing right] = off
Control switches [0002:near] = off
هنا نجد ان هذا الحدث ينفذ عدد من العمليات عندما ينظر اللاعب جهة اليمين, حيث يقوم بإيقاف المفاتيح: phasing right و near بينما يفعل المفتاح phasing left ليظهر صورة الإنعكاس اليسرى
اخيرا و ليس اخرا نجد
Conditional branch: player is facing up
Control switches [0007: phasing left] = off
Control switches [0004: phasing right] = off
Control switches [0002: near] = on
هنا كالسابق لكن عندما يواجه اللاعب الأعلى فتظهر صورة الإنعكاس للأسفل ( لأنها انعكاس ) و هنا نفعل المفتاح

: near و نبطل المفتاحين phasing left و phasing right

و الان, انتهينا من جميع الأحداث و يبقى تجربة البرنامج, و يمكنكم تجربته من الرابط التالي:
http://www.4shared.com/file/60266840/1a091439/Test_2.html

ارجوا ان يعجبكم الدرس و يوجد ملاحظة مهمة هي ان الصورة قد تتأخر لثانية او اقل بقليل من ملاحقة اللاعب, و هذا لأننا ننقل حدث الصورة ثم نظهر الصورة المنعكسة, لذا فمن يملك الحل ارجوا الإفادة

تقبلوا تحياتي

kakarot
24-08-2008, 06:28 PM
بوركت درس جميل ومفيد شكراً لك