• 0
  • مالي خلق
  • أتهاوش
  • متضايق
  • مريض
  • مستانس
  • مستغرب
  • مشتط
  • أسولف
  • مغرم
  • معصب
  • منحرج
  • آكل
  • ابكي
  • ارقص
  • اصلي
  • استهبل
  • اضحك
  • اضحك  2
  • تعجبني
  • بضبطلك
  • رايق
  • زعلان
  • عبقري
  • نايم
  • طبيعي
  • كشخة
  • النتائج 1 إلى 8 من 8

    الموضوع: [درس] تعليم RGSS2 ومبادئها الأساسية

    1. #1
      التسجيل
      07-12-2006
      الدولة
      Somewhere >__>
      المشاركات
      175
      المواضيع
      19
      شكر / اعجاب مشاركة

      Exclamation [درس] تعليم RGSS2 ومبادئها الأساسية

      السلام عليكم ورحمة الله وبركاته.
      من عنوان الدرس: تعليم RGSS2 ومبادئها الأساسية. إن شاء الله هذا الدرس بادئة سلسلة دروس تعليم RGSS2.
      تحذير: هذا الدرس طويل وهو جزئين. والراغبين في التعلم فقط هم من ينهونه دون ترك سطر منه. لذا الرجاء الخروج اذا لم تكن لك نية للتعلم.

      ملاحظة مهمة جداً: RGSS2 هي فرع من لغة Ruby، ولكن Ruby نفسها ليست RGSS. شي يخربط شوي بس سهلة مع شوية تركيز.
      عودة لموضوعنا:
      أولاً: RGSS2 مثل أي لغة تتكون من مجموعة تعابير وقواعد ثابتة
      وتبدأ اللائحة بـ:
      نص الـComment/التعليق
      وهذا يبدأ بـ#. ويهمل قارئ السكربت التعليقات، إذ هي مجرد ملاحظات تكتبها لنفسك ومستعملي السكربت لتفهيم عمله.مثال:
      كود:
      This is a comment#
      المعرفات Identifiers:
      مثال عليها:
      كود:
      hello my_name_is_talal
      المعرف في Ruby هو مايبدأ بحرف صغير lowercase او underscore ( _ ). وليس هناك حدود لطول المعرف.
      الكلمات المحجوزة Reserved words
      وهي 38 كلمة:
      كود:
      BEGIN    class    ensure   nil      self     when
      كود:
      END def false not super while alias defined? for or then yield and do if redo true begin else in rescue undef break elsif module retry unless case end next return until
      ولايمكن اطلاقاً استعمال هذه الكلمات لأسماء صفوف classes. ولكن اذا سبقت بـ@ أو $، يمكن استعمالها كمتغير (أنظر ادناه).
      مثال:
      كود:
      we can NOT use class nil BUT we can use $nil = 10 and we can use def nil
      التعابير Expressions
      مثال:
      كود:
      true (1+2)*3 if test then ok else ng end
      يطلق مصطلح "تعبير" على كل مايوجد في روبي. وان مجموعة تعابير معينة تُخلِّق برمجية ruby
      وتفصل عن بعضها البعض باستخدام الفاصلة المنقوطة ( ; )

      ثانياً: الثوابت والمتغيرات
      لابد من اي لغة برمجة ان تحتوي على هاتين الاثنتين، بدونهما لايمكننا ابداً ان نجري عمليات حسابية مما يحيل حياتنا جحيماً! ولغة ruby تحتوي الآتي:-
      1)متغيرات محلية Local Variables
      2)متغيرات محدودة Instance variables
      3)متغيرات الصفوف class variables
      4)متغيرات عامة/عالمية Global variables
      5)الثوابت Constants
      وسنذكر كل واحد بالتفصيل:
      المتغيرات المحلية: مثال عليها
      كود:
      ruby
      يذكركم هذا بشيء؟ ... انها نفسها المعرفات. وتحتاج الى اعلان declaration قبل استعمالها.

      المتغيرات المحدودة: مثال عليها
      كود:
      @myname
      المتغيرات المبدوءة بـ’@’ تعد متغيرات محدودة، وهي تعود الى اماكن معينة من السكربت، وهذه المتغيرات يمكن أن ترجع من أي صنف او فئة فرعية في السكربت نفسه.

      متغيرات الصفوف: مثال عليها
      كود:
      class A @@A = 1 def B puts @@AA end end

      المتغيرات المبدوءة بـ"@@" تسمى متغيرات الصفوف، ويتم تعريفها في صف ما ويمكن الرجوع اليها في نفس الصف.
      المتغيرات العامة/ العالمية: مثال عليها
      كود:
      $name
      المتغيرات المبدوءة بـ$ تسمى متغيرات عامة. ويمكن الرجوع اليها من اي مكان في البرنامج (إذن يستحسن الحذر عند الإستعمال). ولا تحتاج الى اعلان، وقيمة اي متغير غير مشغل = nil.

      الثوابت: مثال عليها:
      كود:
      RUBY = 'ruby'
      انتبه!! هذا لايعد معرفاً. لأنه لايبدأ بحروف صغيرة lowercase.
      ولكن الثوابت لديها نظام مختلف عن المتغيرات في الرجوع.

      كود:
      class Identity NAME = 'SOMEBODY' end class Checkin < Identity p NAME # Gives us "SOMEBODY" end p Identity::NAME # Gives us "SOMEBODY"
      والآن انظر هنا.
      المتغير NAME موجود فقط في صف Identity. لكن من الممكن الرجوع الى الصف باستخدام < التي تعني أن صف Checkin يتَّبِع صف Identity ويرجع الى ثوابته ومتغيراته.
      أي ان Identity = Checkin Superclass

      نسينا شيئاً! لقد تكلمت قبل قليل عن nil. فهل عرفنا ماهي؟
      انها تعد متغيراً كاذباً Pseudo variable.
      وأمثلة آخرى: self, true, false. وهذه تعمل على صفوف خاصة بها في Ruby. مثل
      NilClass.

      ثالثاً: الحرفيات Literals.

      القيم التي تصرّف فوراً في Ruby مثل رقم 1 او القيمة "Hello" تعد من الحرفيات.
      وهي 7 انواع:
      1) الحرفيات الرقمية Numerical Literals
      مثل 1,2,3 أو 0xffff.
      يمكن ان تحتوي الحرفيات الرقمية على Underscore. فمترجم الـRuby يتجاهلها ولا يترجمها بشكل خاص. مثل:
      كود:
      03_10_1987 # => 03101987 29_03_1928 # => 29031928

      2)مدخلات حرفية String Literals
      مثال عليها:

      كود:
      "this is a string expression\n"
      كود:
      'this is a string expression'
      الحرفيات المحاطة بـ"-" أو '-' تسمى strings.
      ملاحظة: الحرفيات المفصولة بمسافة فارغة تدمج اوتوماتيكياً
      كود:
      p"mon" "tada" # montada
      الفروق بين " " و ' '
      ان التنقيط المزدوج = \\ ويسمح ببديل التعبير (#{}) مثل:

      كود:
      class RGSS2
      "NAME = "Tutorial$ "p" This is a #{$NAME} related to RGSS2
      في حين عند عمل الآتي:
      كود:
      class RGSS2
      "NAME = "Tutorial$ 'p' This is a #{$NAME} related to RGSS2
      سوف يصبح لدينا This is a #{$NAME} related to RGSS2 لكن " " ابطأ نوعاً من
      ' ' لأنها تستهلك CPU اعلى

      3)التعابير المنتظمة Regular Expression
      مثل:
      كود:
      /^Ruby the OOPL/
      كود:
      /Ruby/i /my name is #{myname}/
      يبدو هذا شائقاً! لم أفهم .
      حسناً، هذه التعابير المنتظمة هي ماحددت بـBackslash او ( \ ).
      الحروف التي تتبع الـSlash النهائي فوراً تدل على خيار التعبير المنتظم:
      i
      وتعني مقارنة التعبير المنتظم غير حساسة لحالة الأحرف.
      m
      وتعني ان السطور الجديدة تعني انها تعد حروفاً طبيعية (مقارنةً مثلاً بـالنقطة "." )

      4)تعابير الصف Array Expression: مثال:
      كود:
      [1, 2, 3]
      تعيد تعابير الصف نتيجة كل تعبير. والـArray محدود للصف Array في RGSS2

      5)الـHash Expressions: مثال عليها:
      كود:
      {1=>2, 2=>4, 3=>6}

      تعيد علامة رقم Hash تخطيط قيمة ناتجة إلى مفتاح (Key). علامات الأرقام محدودة للصف Hash.
      وعلامة الرقم ويمكن تسميتها بـAssociative array يمكنها ربط جسمين Objects مع بعضها البعض.

      6)تعابير المدى Range Expressions: مثال:
      كود:
      1 .. 20
      إذا ظهر هذا في أي مكان عدا التعبير الشرطي، يعيد المدى الإحتمالات من تعبير 1 الى تعبير 2.
      والـ( .. ) تظهر الأرقام بين الرقمين التي هي بينهما. مثلا المثال، النقطتين تعني 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20. للإختصار نقوم بوضع هاتين النقطتين.

      7) الرموز Symbols: مثل
      كود:
      :class :lvar :method :$gvar :@ivar :+
      رموز عائدات التي لها اتصال بين اثنين مراسلة بالـStrings.
      والرموز اجسام Objects فريدة تعطي نفس الـجسم عند التقييم Evaluation

      ---------------------------------يتبع (يعني لسه ماخلصنا درس1)---------------------------------
      مشروعي الحالي
      -- انقر هنا لزيارة موضوع المشروع.


    2. #2
      التسجيل
      09-09-2005
      الدولة
      العراق - بغداد / سوريا - دمشق
      المشاركات
      1,668
      المواضيع
      56
      شكر / اعجاب مشاركة

      رد: [درس] تعليم RGSS2 ومبادئها الأساسية

      شكراً يا أورداز على درسك القيم هذا , سوف أقراه حرف حرف .. و أبدأ بكتابة السكربتات بيدي

      حتى لو كانت تافهة !! و سوف أضيفك في Credits !! تشكر يا بطل ..

    3. #3
      التسجيل
      07-12-2006
      الدولة
      Somewhere >__>
      المشاركات
      175
      المواضيع
      19
      شكر / اعجاب مشاركة

      Post رد: [درس] تعليم RGSS2 ومبادئها الأساسية

      اقتباس المشاركة الأصلية كتبت بواسطة فتى الالعاب مشاهدة المشاركة
      شكراً يا أورداز على درسك القيم هذا , سوف أقراه حرف حرف .. و أبدأ بكتابة السكربتات بيدي



      حتى لو كانت تافهة !! و سوف أضيفك في Credits !! تشكر يا بطل ..
      شكراً خيو!
      بس للأسف هذا كله تقريباً ما ينفع لعمل سكربت. اتوقع مع الدرس الثالث سوف نبدأ بعمل سكربتات خاصة فينا ^^
      مشروعي الحالي
      -- انقر هنا لزيارة موضوع المشروع.


    4. #4
      التسجيل
      24-01-2006
      الدولة
      QATAR
      المشاركات
      4,098
      المواضيع
      246
      شكر / اعجاب مشاركة

      رد: [درس] تعليم RGSS2 ومبادئها الأساسية

      السلام عليكم ورحمة الله وبركاته

      هذه خطوة جبارة منك أخوي العزيز Ordaz !!
      مرجع ممتاز وأسمحلي اني أخذ منك أذن لمشروع خاص لهذا الموضوع ^___~
      تفاصيل ستكون بيني وبينك أن شاء الله



    5. #5
      التسجيل
      07-12-2006
      الدولة
      Somewhere >__>
      المشاركات
      175
      المواضيع
      19
      شكر / اعجاب مشاركة

      رد: [درس] تعليم RGSS2 ومبادئها الأساسية

      تابع درس 1
      والآن لنبدأ شرح بعض السكربتات المكتوبة بلغة RGSS2:
      كود:
      class Hello_World
      كود:
      class Hello_World p"Hello" end
      شرحه:
      class Hello_World هي اعلان لصف\Class جديد يضاف الى قاعدة بيانات RGSS2.
      p تعني طباعة او عمل صندوق حوار Dialog.
      "Hello" هي مايوجد في صندوق الحوار الذي تم اعلانه باستخدام p.
      end انهاء الصف الذي تم اعلانه "Hello_World".
      وتوتة توتة خلصت الحدوته! سكربت بسيط سهل الاستيعاب.

      سكربت آخر اعقد قليلاً:
      كود:
      class Game
      كود:
      def initialize $RMVXCORP = "Enterbrain" $WINDOWSCORP = "Microsoft" p"RPG Maker VX is produced by #{$RMVXCORP} and Windows VISTA is produced by #{$WINDOWSCORP}" end end
      وشرحه كالآتي:-
      class Game بداية صف
      def initialize تعني اننا بدأنا Definition او تعريف.
      $RMVXCORP = متغير عام.
      $WINDOWSCORP = انظر اعلاه
      p اختصار Print او عمل صندوق حوار.
      الـString يحتوي على #{} أو ما يعني ان نضع قيمة المتغير العام مابين الاقواس. وهذا شبيه قليلاً بالـtext.gsub التي سندرسها في الدرس القادم، ان شاء الله.
      end انهاء الـDefinition
      end انهاء الصف.
      ------------------------------------
      ليس شيئاً معقداً لدرجة! يمكنك فهم السكربت بشيء من التركيز الأقل من قليل.

      ونأخذ آخر شبيه ولكن متقدم اكثر (صفين هذه المرة)
      كود:
      class Montada ID = "404209" MEMBER = "Ordaz" end class Game_Making_Forum < Montada def initialize
      MEMBER2 = "PrinceOfSorrow" p [MEMBER, MEMBER2, ID] end end p Montada::MEMBER
      أها! صفين مختلفين ونحتاج الى شرح:
      class اعلان لصف جديد (من الآن فصاعداُ لن اقول شيئاً. فقد حفظنا ماذا يعني)

      ID + MEMBER = ثوابت. هاتان تتغيران بدون مشاكل في module. سنرى كيف بعد قليل.
      end نهاية صف (من الآن فصاعداُ لن اقول شيئاً. فقد حفظنا ماذا يعني)

      class Game_Making_Forum > Montada تعني ان Game_Making Forum صف تابع لـMontada.

      def initialize تعني Definition (من الآن فصاعداُ لن اقول شيئاً. فقد حفظنا ماذا تعني)

      p هذه المرة مختلفة. حيث اننا الآن نستعمل اقواس Array لطبع MEMBER, MEMBER2 و ID..
      p Montada::MEMBER تعني ان نطبع MEMBER الموجودة في Montada.
      --------------------------------------
      آخ. ظننتها صعبة لكنها اسهل من شرب الماء .
      وممكن تعديل الثوابت بحرية نوعاً ما. عند عمل module (وهي ليست مصاص دماء فلا تخاف)
      مثل:
      كود:
      module Ruby RUBY = "Ruby Programming Language" #Full name RGSS2 = "Ruby Game Scripting System 2" end
      هذا مثال على الـmodule. غالباً ماتكون موجودة في اكثر السكربتات التي فيها Configuration System. مثل Messaging System او Battle System.
      فالثابت RUBY الآن يمكن اعتبارها متغيراً عاماً في السكربت حيث ممكن استدعاءها باستخدام Ruby::RUBY و كذلك الثابت RGSS2. لكن احذر. انظر ادناه:
      كود:
      class Hello $Something = Something module Bye Something = Something end end
      احذر! توقف! هذه كارثة! لا يمكن وضع module داخل صف!
      لا يمكن وضع module داخل صف! لا-يمكن-وضع-module-داخل-صف!
      إحفظ هذا! فهو مهم. انه الصف اولاً ثم ابدأ بالـmodule.
      -----------------------------------------------------
      نهاية الدرس وفي الدرس القادم ان احيانا الله، سندرس معاً كيف نعمل Bitmap او رسمة في الخريطة.
      والسلام عليكم ورحمة الله وبركاته.
      مشروعي الحالي
      -- انقر هنا لزيارة موضوع المشروع.


    6. #6
      التسجيل
      15-02-2006
      الدولة
      كوكب الارض
      المشاركات
      769
      المواضيع
      33
      شكر / اعجاب مشاركة

      رد: [درس] تعليم RGSS2 ومبادئها الأساسية

      نايس نايس نايس

      باين أنكم شغالين على الاسكربات من الخاطر اشكرك أخوي على تعبك في القسم وما تقدمه للار بي جي ميكر

      انا بعدي ما قرات الدروس (عندي امتحانات النهائيه للفصل الصيفي الاول الاسبوع الجاي)

      ان شاء الله اول ما افضى راح اقراء كل ما هو موجود وراح اساعدكم ان شاء الله ولو بشيء بسيط


    7. #7
      التسجيل
      24-04-2008
      الدولة
      ksa
      المشاركات
      44
      المواضيع
      4
      شكر / اعجاب مشاركة

      رد: [درس] تعليم RGSS2 ومبادئها الأساسية

      السلام عليكم

      سامحوني بس مافهمت شي

    8. #8
      التسجيل
      09-09-2005
      الدولة
      العراق - بغداد / سوريا - دمشق
      المشاركات
      1,668
      المواضيع
      56
      شكر / اعجاب مشاركة

      رد: [درس] تعليم RGSS2 ومبادئها الأساسية

      على كولة سامي , يا حليلك XD ..

      مُغلق لأن الموضوع قديم

    ضوابط المشاركة

    • لا تستطيع إضافة مواضيع جديدة
    • لا تستطيع الرد على المواضيع
    • لا تستطيع إرفاق ملفات
    • لا تستطيع تعديل مشاركاتك
    •