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

مشاهدة النسخة كاملة : [درس]دورة تعلم لغة RGSS2 عمل Window ومحتوياته.



Noor Xp
08-12-2008, 05:16 PM
السلام عليكم ورحمة الله وبركاته


بسم الله الرحمن الرحيم



نظراً لطلب بعض الأعضاء لدروس سهلة للغة روبي/RGSS2 ,لذلك
ان شاء الله حقوم بوضع سلسلة من الدروس أن شاء الله حتعلمك هذه اللغة,
وححاول أبسطه بقدر الأمكان ونبدأ:

ملاحظه:أذا كنت في عجله فهذا الموضوع فلن تتعلم أي شيئ,يجب أن تتفرغ وعليك
فتح البرنامج والقيام خطوه بخطوه حسب الشرح لتفهم ^^.


حتتفاجؤن كيف حنبدي نصمم Window نحن مانعرف شيئ عن هذه اللغه,الجواب
حتعرفونه في نهاية الدرس :

ونبدأ على بركة الله...

اولاً:عمل وندوز من أسهل الأمور في لفة RGSS2 ونستخدم لذلك السكربت التالي:

class My_Window < Window_Base

def initialize
super(0,0,200,200)
end
end

شرح خطوه بخطوه:



class : هذه تصيغ أسم النداء ,يعني السكربت سميته My_Window ووضعته بعد الأمر class ,وهنا تسمى السكربت بأسم My_Window وحنشوف تأثيرها بتجربة السكربت بعد قليل.


< : هذه العلامه أذا وضعت بعد أسم السكربت تعتبر علامة وراثه فقط أذا جائت بعد أسم السكربت أي أنه سيرث صفاته من الـWindow_Base ,أما أذا جاء بعد رقم أو أي صيغة خارج أسم السكربت فهي تعتبر علامة أصغر من.وسيتم شرحها فيما بعد.


def + initialize : أن شاء الله سأقوم بشرحها فيما بعد لكن يجب ذكرها في كل Window نقوم بعمله.


super : هذه معقده تقريباَ حتى أنا ماأعرف جميع خواصه ,لكن أحد هذه الخواص انه تقوم بالتعديل على صفات المورث منه أي Window_Base ترون فيه x,y,width,height موقع بالقيمة السينية,الموقع بالقيمو الصادية,الطول,العرض ,حيث قمت بتحديد ها كما ترون x=0,y=0,width=200 ,height=200 ,وكذلك يجب أستخدام هذا المصطلح في كل وندوز نقوم بعمله.


لتجربة السكربت نقوم بعمل أيفينت ونستخدم Advanced/script ونقوم بكتابة أسم السكربت أي My_Window و new أي My_Window.new ,هذه فائدة الclass تستخدم لتسمية السكربتات وندائها بأضافة (أسم الوندوز.new).


الناتج:

http://www.montada.com/attachment.php?attachmentid=309792&stc=1&d=1228744843



محتويات الـWindow :-

الخطوط:
حنستخدم بهذه الخطوه أن شاء الله الـdef وتفهمون جزء من أستخدام هذا المسطلح,نقدر نكتب خط بطرقتين الأولى:


class My_Window < Window_Base

def initialize
super(0,0,200,200)
self.contents.draw_text(0,0,100,100,"Yeah it a Text")
end
end


والثانيه :


class My_Window < Window_Base

def initialize
super(0,0,200,200)
refresh
end
def refresh
self.contents.clear
self.contents.draw_text(0,0,100,100,"Yeah it a Text")
end
end


بالطريقتين أستخدمنه المسطلح:
(self.contents.draw_text(x,y,width,height,text,alig
x = موقع النص بالقيمة السينية
y = موقع النص بالقيمة الصادية
height = طول الخط
width = عرض الخط
text = النص بين علامتي أقتباس "النص"
alig = موقع الخط 0 يسار 1 وسط 2 يمين 3 أو أكثر حيقولك خطأ ^^(0-1-2)

الناتج:
http://www.montada.com/attachment.php?attachmentid=309795&stc=1&d=1228748708

لكن أنظروا في الطريقه الأولى وضعنا الخط تحت مصطلح super .
لكن في الطريقه الثانيه أستخدمنه الـــrefresh وايضاً def refresh
ماهي العلاقه؟
العلاقه ان وضعنها في الــdef refresh
self.contents.clear
self.contents.draw_text
في المصطلح الأول شرحها أن شاء الله في الدرس القادم ,اما الثانيه فعملنا فيها نص.

وقمنا وضع الـــrefresh في def initialize
أي يمنا بتعريف ال refresh بأستخدام المسطلح def,حتفهموها أكثر بهذه الأمثلة:


class My_Window < Window_Base

def initialize
super(0,0,200,200)
terming
end
def terming
self.contents.clear
self.contents.draw_text(0,0,100,100,"Yeah it a Text")
end
end



class My_Window < Window_Base

def initialize
super(0,0,200,200)
systolizing
end
def systolizing
self.contents.clear
self.contents.draw_text(0,0,100,100,"Yeah it a Text")
end
end


في جميع الحالات قمنا بتعريف قيمة كل من systolizing,terming بأستخدام المصطلح def على أنها نص.
أرجوا انكم قد فهمتهم فائدة المصطلح def .


التكمله بعد قليل..... في نفس الموضوع

اسود الرافدين
08-12-2008, 06:01 PM
شكرا على الابداع اخوي والله ابداع وجزاك الله الف خير على مجهودك الكبير في المنتدى وبالتوفيق ان شاء الله وتمت اضافت E-mail وكل عام وانت بالف خير حبي

Karim Ghazal
08-12-2008, 08:31 PM
كل عام و أنت بألف خير .. درس رهيب و جاري الحفظ و ألية رجعة إذا جان عندي سؤال وردة ..