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

مشاهدة النسخة كاملة : دورة c-script الدرس الثامن (المــ action ــهــام)



ديمو1
13-10-2008, 08:31 PM
تعريف الكيانات برمجيا.....
يتم تعريف الكيانات بهذه الطريفة


entity player
{
type="اسم الموديل.mdl";//لأستدعاء الموديل
layer=1;//طبقة الموديل

x=0;//الموقع على المحور اكس على الشاشة
y=0;//الموقع على محور آي على الشاشة
z=0;//الأرتفاع على الشاشة
}






المهام
هي الوظيفة التي يُمْكِنُ أَنْ تُرْبَطَ بالكيانات: اللاعب، المصعد , الوحش , السلاح، الخ. أنت يُمْكِنُ أَنْ تَرْبطَ المهام بأيّ كيان ترغب: موديل، سبرايت , كائانات مرحلة أَو تضاريس. كُلّ المهام التي وضعت في سكربتنا تَظْهرُ في برنامج Wed، مثل ما الصورةِ تحت:



قد يتبادر الى ذهنك بان المهام تشبه الوظائف لنرى الاختلافات بينها:


action add_numbers( )
{
b = a + 5;
}

function add_numbers( )
{
b = a + 5;
}



المهمة و الوظيفةَ تقريباً نفس الشيء. إنّ الفرق الوحيدَ ان المهمة تظهر في برنامج WEd،
ويمكن ان تكون ملحقة باحد الكيانات. تشتغل تلقائيا بعد تشغيل المرحلةُ. أي وظيفة عادة من الضروري ان نقوم نحن بتشغيلها بواسطة اوامر معينة (راجع الدرسَ الثالث للمزيد من التفاصيل).

المهام يَجِبُ أَنْ تستعمل فقط عندما تُريدُها أَنْ تُسيطرَ على كيانِ؛ المهام ايضا ليس من الضروري ان تستعمل مع الكيانات فقط (على سبيل المثال، يمكنها التعامل مع الاعداد ، مثل ما في مثالِي فوق).
.>><>

قم بفتح المرحلة المرفقة ثم قم بتشغيلها:
ولاحظ استدارة الطائرة اليمني بخط افقي واستدارة الطائرة اليسرى بتقلب جانبي

كل هذا معرف بواسطة المهام التي تظهر في
308392

الان قم فتح السكــــــــــــربـــــــــــــت الموجود مع المرحلة :


////////////////////////////////
//FuNcTiOn
//
/////////////////////////////
function main()
{
level_load("mywork.wmb");
}
////////////////////
//AcTiOn
//
///////////////////

action pan_plan
{
while(1)
{
my.pan=my.pan+1;
wait(1);
}

}

action roll_pan
{
while(1)
{
my.roll=my.roll+1;
wait(1);
}
}

الكود سهل لاكن لنشرحه قليلا

function main()
{
level_load("mywork.wmb");
}

قمنا بتعريف الوظيفة الرئيسيـــة
ثم وضعنا بداخلهـا الامر اسستدعاء مرحلة:

level_load("mywork.wmb");
وهو يقوم باستدعاء ملف المرحلة mywork.wmb يجب ان يكون المرحلة بنفس مجلد السكـــــــــربت

ثم
قمنا
بوضع


action pan_plan
{
while(1)
{
my.pan=my.pan+1;
wait(1);
}

}

قمنا باستعمال الكلمة الدليلية action ثم اسمينا المهمة بأسم pan_plan يمكنك أختيار اي اسم تـريد
action pan_plan

ثم وضعنا الامر while(1) وهي امر التكرار وغير مشترط وضعه بأي اكشن وبحالتنا هذه سيتكرر باستمرار الى مانهاية وهذا الامر يكتب بهذه
الطريقة


while (expression)
{ مجموعة من الاوامر... }

اي اننا نضع الاوامر بين القوس المجعد


my.pan=my.pan+1;

My هذا تعريف يدل على ان الذي سيكون له المهمة هو انا ثم وضعنا النقطة اذا كنت تذكر فهذه النقطة مفيدة جدا وايتعملناها كثيراً
ثم الامر pan وهو امر يجعل صاحب المهمة يدور حول محور افقي ثم وضعنا اشارة المساواة ثم وضعنا الامر pan مجددا ثم اشارة الزائد ثم الرقم1 وهذا يجعل سرعة الاستدارة هي 1 فقط

ثم جاء الامر
wait(1) وهو يامر المحرك بأن ينتظر ثانية واحدة لكي يعطي فرصة للاوامر الاخرى بالعمل.......

ثم اغلقنا القوسين المجعدين قوس عبارة التكرار وقوس المهمة
وهكذا تعلمنا عمل مهمة

سأترك المهمة الاخيرة عليك حاول ان تفهمها واخبرني بالرد ....

اعذروني لاني مابنزل الدرسين القادمين الان بنزله بكره فمان الله:biggthump

ديمو1
13-10-2008, 08:33 PM
لم يكن الشرح مطولا لاننا سنرى المهام بالدروس القادمة كثيراً

Game baker
13-10-2008, 09:49 PM
مافهمت الدرس الصراحة
وهناك خطأ في أستدعاء الملف العمل


@_@

ديمو1
14-10-2008, 05:41 PM
ترا هذا الدرس هو مجرد معلومات بسيطة بنتعرف على المهام بالدروس القادمة ان شاء الله

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

Game baker
14-10-2008, 05:42 PM
ههه
اوكيه ديمو نجرب ونشوف

Game baker
14-10-2008, 05:54 PM
اهلا

لقد فهمت الاكشن الاخيري

كما يبدو أنك وضعت roll ليدور حول نفسه

ثم وضعت wait لكي تعطي فرصة للاوامر الاخرى

PoKe Vx
14-10-2008, 06:18 PM
كذا نبغاك بسرعة تحط الدروس
+
متى رقم اخر درس تقريبا

ديمو1
14-10-2008, 08:20 PM
ههه
اوكيه ديمو نجرب ونشوف


اهلا

لقد فهمت الاكشن الاخيري

كما يبدو أنك وضعت roll ليدور حول نفسه

ثم وضعت wait لكي تعطي فرصة للاوامر الاخرى

صـــــــح عليك تستاهل التحية

كذا نبغاك بسرعة تحط الدروس
+
متى رقم اخر درس تقريبا
ياهلابيك اخوي اخر درس لم يتم تحديده الى الان لكن ان شاء الله فوق العشرة:biggthump

majinvegetassj4
16-10-2008, 03:32 PM
THANKS MAN

majinvegetassj4
16-10-2008, 03:34 PM
أخي بعد الإنتهاء من الدروس أعطنا بعد الأكواد الأساسية مع الشرع مثل

ent_create() level_load
والتي تعتمد الألعاب عليها أساسا نخن ننتظر بفارغ الصبر دروسك القادمة

BladeII
25-10-2008, 06:08 PM
تسلم ايدك ياورد وبارك الله بيك............

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