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

مشاهدة النسخة كاملة : [درس] global الصغير الخطير في GameMaker



من التراب
03-03-2006, 10:39 PM
السلام عليكم ورحمة الله وبركاته ....

مقدمة ( غير ضرورية ..^^" ) :

كثيرًا ما نحتاج لصنع متغير لكائن في القيم ميكر مثل متغير للصحة و عدد الطلقات والنقاط ...
.وأحيانـًا نصنع متغير ليكون كمفتاح مثلا ( can_shoot ) فإذا كان هذا المتغير يساوي 0
لا يحدث حدث الإطلاق وإذا كان 1 يحدث الحدث ...


1- ضغطة مزدوجة على الكائن (الأوبجكت) .... المفروض أنك صنعت كائن ..
2- الضغط على Add Event لإضافة حدث ونختار الحدث (Create ) من النافذة الجديدة ..
3- اضغط على المكتبة Control ثم اسحب مربع كتابة الكود (المرسوم علية الورقة البيضاء) "Execute a piece of code"
4- اكتب الكود (القيمة = اسم المتغير) ..طبعـًا لا تكتب بالعربي ...^^"
مثال :

The_Health=100;

نبذه :
الموضوع معروف لأنه ضروري عند تصميم ألعاب جيدة يأثر كل كائن على الآخر ...

صلب الموضوع :

هـل حاولت مرة صنع متغير في أوبجكت واستخدام أوبجكت آخر لإظهار قيمة ذلك المتغير على الشاشة ؟؟؟
تحتاج تشبك بينهم .... وأكيد سنستخدم المتغيرات التي تؤدي للأحداث ....^^

في عشر خطوات ... بدون إختصار ..

1- أضف صورة للعبة .... ( Ctrl+Alt+s ) ...اما أن ترسم أو تستخدم صورة من الجهاز ...
2- اصنع كائن (أوبجكت) جديد .....( Ctrl+Alt+o ) وسميه ( object0 ) يعني لا تغيره ... وفي خانة Sprite أظف الصورة التي أضفتهاسابقـًا ....
3- أصنع المتغيرات


jump=4;
flying=9;

4- اصنع كائن جديد ..( Ctrl+Alt+o )وسميه ( draw ) ... واضغط على ( Add Event ) واختار ( Draw ) ... أضف كود

اضغط على المكتبة Control ثم اسحب مربع كتابة الكود (المرسوم علية الورقة البيضاء) "Execute a piece of code"
[/font]

5- اكتب هذا الكود

draw_text(x,y,string(jump))
draw_text(x,y+20,string(flying))

ومعناه كتابة نص في الأحداثيات (x,y) والذي يظهر قيمة المتغير ...

6- اصنع غرفة ( room ) .... (Ctrl+Alt+r ) ...وأضف الكائنين الي صنعتهم .....^^
و7- شغل اللعبة ( F5 ) ....... ^^
8- مبروك عليك !!! ......لالالالا شو صار في خطأ ...×_o
9- أكيد لأن الكائن الثاني ( draw ) ما تعرف على المتغيرين jump و flying التي توجد في الكائن الأول ......لكن لكل مشكلة حل ..
10- غير الكود الي كتبته في الكائن الأول وكتب :

global.jump=4;
global.flying=9;

في الكائن الثاني ( draw ) وكتب :

draw_text(x,y,string(global.jump));
draw_text(x+10,y+10,string(global.flying);

بعد ما غيرًا المتغير من محلي إلى عالمي ....^^ يعني خليناه عام يمكن نستخدمة في كل مكان وبذلك تتأثر الكائنات ببعضها ....
يمكن الموضوع يكون معروف لمعظم الأعضاء بس خاصية ( global ) مهمه وتستاهل الذكر..

وأخيرًا شغل اللعبة ....( F5 ) .....ومبروك عليك ...(;

الأن تستطيع إنقاص صحة البطل إذا كان تحت الشمس في الصحراء فإذا وجدت الشمس(الكائن) تنقص صحة البطل بدون حدوث تصادم ....

حلوه فكرة الشمس صح .... حاول تطبيقها ......:05:

اسمحوا لي على التقصير في الفائدة والتطويل في الكلام ....(^..^)

S.N.I.P.E.R
04-03-2006, 06:31 AM
شكرا يا من التراب على درسك الرائعة

مع انك صعبان عليا:D

عشان محدش رادد على موضوعك غيري انا:D

من التراب
04-03-2006, 09:03 AM
هلا مبرمج البوكيمون ..... ردك يكفي المفروض تهنيني ....^^

أنا سعيد بردك ....^..^

||صقر||
04-03-2006, 11:47 AM
مشكور أخى على الدرس

Fox McCloud
04-03-2006, 11:55 AM
الله يخليك اخوي على الدرس

Mr. Black Man
04-03-2006, 01:47 PM
درس رائع جداً :biggthump
و طريقة مبتكرة في الشرح :)
شكراً لك و تم الترشيح ;)

الموقوف
04-03-2006, 03:02 PM
مشكور أخي من التراب على هذا الدرس الرائع ;)

XORO
04-03-2006, 05:25 PM
مشكور على الدرس الجميل


وشكــــــــــــــــــــــــــــــــــــــــــــــــــــــرا :ciao:

d.a.m.h
04-03-2006, 10:46 PM
درس رائع يا من التراب و شرح ممتاز ............كنت دائما ابحث عن فائدة لglobal
و درسك الرائع اجاب على السؤال
بالتوفيق

من التراب
05-03-2006, 07:51 AM
العفو شباب .... هذا أقل شيء نقدر نسوية ...^^"

وأي سؤال فأنا جاهز ..

OctoBot
05-03-2006, 10:19 AM
السلام عليكم.
لازم أقول طريقة عرض الدرس جميلة و 100% سأستخدمها في درسي القادم, طريقة الإخفاء تخليه منظم و صغير مع ذلك يحتوي كل المعلومات المحتاجة.
و عندي لك سؤال بسيط كنت أفكر فيه, أقدر أجربه و أعرف الجواب لكني شوي كسول. المتغيرات و المصفوفات المخزنة في global, هل هي تعدي الغرف؟, يعني لو رحت على غرفة ثانية المتغيرات بتنمحي؟ ولا بتكون موجودة بنفس القيم؟

من التراب
06-03-2006, 10:30 AM
مشكور ...أنا سعيد أن الطريقة عجبتكم ....^^"

... إذا وضعت الأبجكت الي صنعت فيه المتغير قلوبل في كل روم.... الجواب بكون لا ....برجع المتغير لقيمته الأصلية ...

لأنك كتبت

global.points=0

يعني بغير قيمة المتغير ورجعها للصفر إذا إنتقلت لروم ثاني ...ـ_ـ

الحل إستخدم المتغيرات الي موجودة في القيم ميكر .....

مثل :
score
lives
health

ليش ؟؟؟

لأنها عامه و ما تحتاج تسوي لها كريت وتقدر تستخدمها مباشرة (يعني لا تكتبها فب الحدث كريت) وبتبدأتلقائيـًا من الصفر ...

هذا حل مؤقت ......^..^"