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

مشاهدة النسخة كاملة : خطوة بخطوة لعمل لعبة ثلاثية الأبعاد بالدركبيسك - (الجزء الرابع) - بقلم : احمد البنا



Ahmedbna
20-02-2009, 01:54 PM
http://img294.imageshack.us/img294/509/les4rq5.jpg (http://imageshack.us/)



منظور الرؤيا الثالث للشخص Third Person Perspective




سوف نعلمك ان شاء الله فى هذا الدرس كيف تصنع منظور الرؤيا الثالث للشخص



Rem اعدادات التزامن للعرض

Sync On
Sync Rate 30

Rem عمل المكعبات و مواضعها العشوائية
For x = 1 to 5
Make object cube x,100
Position object x,Rnd(2000),0,Rnd(2000)
Next x

Rem عمل المجسم الكروى
Make object sphere 10,50

Rem الدائرة الرئيسية
Do
Rem Store Object angle Y in aY#
aY# = Object angle Y(10)

Rem التحكم فى مدخلات الكميرا
If Upkey()=1 then Move object 10,10
If Leftkey()=1 then Yrotate object 10,Wrapvalue(aY#-5)
If Rightkey()=1 then Yrotate object 10,Wrapvalue(aY#+5)

Rem نهيىء الأوبجكت ونخزن الأحداثيات x# z#
X# = Object position x(10)
Z# = Object position z(10)

Rem نخزن الموضع الجديد للكميرا داخل cz# cx#
cZ# = Newzvalue(Z#,aY#-180,100)
cX# = Newxvalue(X#,aY#-180,100)

Rem موضع الكميرا
Position Camera cX#,100,cZ#

Rem نجعل الكميرا تنظر للأعب
Point camera X#,50,Z#

Rem ننشط الشاشة
Sync
Loop



سوف يقدم الدرس منظور الرؤية الثلاثية الأبعاد للكميرا ، اما رؤية الشخص سوف تعرض خلف الشخصية ، بأختصار ستكون الكميرا خلف الشخصية ، طبعا معظم الكود اللذى بأعلى قد قدمنا لكم شرحة .


X# = Object position x(10)
Z# = Object position z(10)

ال "Object Position X" و "Object Position Z" هما اوامر مشابهان للأمر "Object Angle" ماعدا ان هذان الأمران يعيدان موضع الأوبجكت داخل احداثيات العالم بألأحرى دوران الأبجكت ،اما ما بين القوسين فيتم وضع رقم الأوبجكت اللذى تريد قيمة الأحداثى منه ،،وقد خزنا هذه القيم داخل المتغيرين X# و Z# .



cZ# = Newzvalue(Z#,aY#-180,100)
cX# = Newxvalue(X#,aY#-180,100)

ال "NewZValue" و "NewXValue" هما أوامر تحفظ لك ما لديك من الدالات الرياضية العالية مثل جا و جتا ، هذه الأوامر تحسب الموضع الجديد المبنى فى موضع أخر ،وقد استخدمناه لحساب الموضع ب 100 وحدة خلف اوبجكت الاعب ،،، اول معامل x# خاص بأحداثيات موضع الاعب الحالى ، وتذكر نحن خزنا موضوع الأبجكت داخل المتغيرات x# و z# ،، اما المعامل الثانى فهو زاوية الأتجاه اللتى نريد احداثياتها الجديدة ، ونحن لدينا الزاوية y للأبجكت مخزنه داخل المتغير ay# وطرحنا 180 درجة من قيمتها ، واصبحت الزاوية تشير مباشرة خلف الأبجكت،،، اما الرقم الثالث فهو رقم وحدات بعد العالم(العالم الثلاثى الأبلعاد اللذى نحن به) من موضع الأبجكت اللذى نأخذ منه الأحداثيات ،وقد استخدمنا القيمة 100 ، اى زودنا الموضع ب 100 واحدة مباشرة خلف اوبجكت اللاعب وخزنا الأحداثيات فى متغيرات تمثل موضع الكميرا cz# و cx# .


Position camera cX#,100,cZ#

ان أمر "Position Camera" عمله تماما مثل الأمر "Position Object" ما عدا انه لا يوضع فيه رقم الأبجكت بل يوضع به فقط القيم الأحداثية ، لقد استخدمنا الحسابات الحديثة للقيم x و z و 100 للقيمة y ، بما ان الأحداثى y للأبجكت اللاعب يكون صفر و نصف القطر = 50 و محيط الأحداثى Y للكميرا الى 100 ، مكان الكميرا فوق اللاعب .


Point camera X#,50,Z#

ان كميراتنا فوق الأبجكت وقد استخدمنا الأمر "Point Camera" لتشير الكميرا الى الأبجكت(تنظر اليه) ، معامل هذا الأمر هو الأحداثيات x y z مكان النظر للكميرا ، سوف نستخدم المتغيرات z# و x# واللتى تعتبر قيم المواضع x و z للأبجكت اللاعب ،، ومن القيمة y سنضع القيمة 50 ،، أذن الكميرا يجب ان تكون الأن فى منتصف أوبجكت اللاعب .


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

الى اللقاء مع الدرس القادم


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

abu2020
20-02-2009, 02:46 PM
يشرفني ان اكون اول من رد على هذا الدرس
بالتوفيق

Ahmedbna
20-02-2009, 03:40 PM
اهلا بيك اخوى وانا يشرفنى مرورك - شكرا

اميرالقلوبR
20-02-2009, 08:27 PM
مشكور اخوي على الدرس

لاكن احس ان الاكود الى فوق ملخبطه

انا ماني عارف وين تنحط ؟

ان شاء الله نشوف الكمله والتواصل

واصل ابداعك

Ahmedbna
21-02-2009, 09:55 AM
مشكور اخوي على الدرس

لاكن احس ان الاكود الى فوق ملخبطه

انا ماني عارف وين تنحط ؟

ان شاء الله نشوف الكمله والتواصل

واصل ابداعك

مرحب بيك

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