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

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

    1. #1
      التسجيل
      26-01-2004
      الدولة
      مصر
      المشاركات
      395
      المواضيع
      36
      شكر / اعجاب مشاركة

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

      ادخال و ازاحة العنصر أو الأبجكت

      اهداف الدرس : سنعلمك كيف تغير مواضع العنصر object وتجعله يستدير بأستخدام لوحة المفاتيح .

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

      Rem Setup sync rate
      Sync On
      Sync Rate 30
      Rem Create sphere
      Make object cube 1,100
      Rem Main loop
      Do
      Rem Store the object's Y angle in aY#
      aY# = Object angle Y(1)

      Rem Control input
      If Upkey()=1 then Move object 1,2
      If Leftkey()=1 then aY# = Wrapvalue(aY#+5)
      If Rightkey()=1 then aY# = Wrapvalue(aY#-5)

      Rem rotate the sphere
      Yrotate object 1,aY#

      Rem Refresh Screen
      Sync
      Loop
      ربما عند نظرك للكود السابق تجد انك تعرف بعض منه لأننا شرحناه ، فى دروسنا القادمة سنستخدم اكواد قد استخدمناها فى وقت سابق ، ولو اكتشفت انك لم تفهم امر من الأوامر السابقة اقرأ الدرس الأول مرة اخرى ، أو راجع مساعد ملفات داركبيسك ، تعالى نلقى نظرة على المتغيرات variables ، المتغيرات هى اسماء يمكن ان تستخدمها لتخزين قيم ويستخدم الداركبيسك العديد من المتغيرات اللتى تكون مميزة الصيغة ، انظر الى الكود التالى :

      aY# = Object angle Y(1)
      فى هذا السطر نحن خزنا الزاوية y للأبجكت رقم 1 فى المتغير "aY#" لأحظ ان العلامة # هى رمز يخبر الداركبيسك بأن المتغير عشرى floating والمتتغير العشرى او الكسر معروف مثل 3.5 أو 1.0000 .... الخ اذا هو يسمح للمتغير بالتعامل مع كل كسر موجود ،،، هناك بعض المتغيرات للدركبيسك تستخدم متغيرات حرفية string أو مصفوفات arrays وايضا intergers اعداد صحيحة،، المتغيرات الحرفية تستخدم الرمز $ فى تخزين البيانات كهذا المثال A$ = "Hello World" ". ، وطبعا بيانات المتغير الحرفى يجب ان توضع كما ترى بين علامتى اقتباس ... أما المصفوفات تخزن مجموعات من البيانات فى نفس البيانات عموما سوف نبحث المصفوفات فى درس لاحق . ،، المتغيرات الصحيحة Integers تخزن ارقام صحيحة سواء ان كانت موجبة او سالبة كمثال ( 5- أو 5 ، 1000- أو 2000 أو 2513 أو 4561- ... الخ) ولاحظ ان integers لا ستخدم امتدادات واقصد طبعا امتدادات عشرية او ما خلافة .
      حاول ان تجعل اسماء المتغيرات تدل على مغزاها او محتواته حتى لا تتوه او اذ احببت ان تتبادل الكود مع صديق لك لا يتوه فى تلك المتغيرات ووظائفها كما ستنفعك تلك الطريقة فى معرفة اكتشاف خطأك بسهولة ، فى مثالنا نحن سمينا هذا المتغير "aY#" لكى يمثل الزاوية y للأبجكت رقم 1 ، ملاحظة بسيطة لم نستخدم الأسم "AngleY#" كمثال بسبب اننا لا نريد ان يبقى الأسم طويلا ، لكن بالطبع تستطيع تغيير الأسم الى اى اسم تراه سهل لك لقرائته .

      If Upkey()=1 then Move object 1,2
      if - then هى تعبير شائع كثيرا فى لغة الدراكبيسك ، يتم كتابة ما تريده ان يحدث بعد عبارة if ، لو كان ما تريدة صحيحا اذن نفذ ما بعد العبارة then ولو كان ما تريده خاطئا اذن تجاهل ما بعد العبارة then اظنك قد بدأت تستوعب يعنى لو شرحنا الأمر بالعامية نقول لو حصل الحدث كذا اذن افعل الأمر كذا ، ولو لم يحدث الحدث كذا فلا تفعل كذا ، اظنى بسطت الأمر ،، اما العبارة "Upkey()" فهى عبارة وضعت بعد الأمر if فى مثالنا هذا ، وعبارة "Upkey()" هى فى الأصل أمر ليختبر ما اذا كان المستخدم سيضغط المفتاح (سهم لأعلى) من لوحة المفاتيح ام لا وهذا الأمر اذا جعلناه = الرقم 1 فمعناه ان المفتاح قد تم الضغط عليه ام اذا كان = 0 فمعناه انه لم يتم الضغط علية بعد ، لو ان المفتاح upkey تم الضغط عليه سينفذ الأمر اللذى يلية وسيحرك الأوبجكت مباشرة عن طريق الأمر move object ، اول رقم بعد الأمر move object هو رقم تعريف الأبجكت id ، اما الرقم الثانى بعده فهو رقم مقدار الوحدات المدفوعة فى كل مرة وانت ضاغط على الزر ، ممكن تسميته فى مثالنا هذا برقم السرعة .

      If Leftkey()=1 then aY# = Wrapvalue(aY#+5)
      If Rightkey()=1 then aY# = Wrapvalue(aY#-5)
      هذا ان السطران اللذى بهم الأمران IF - THEN هما لأختبار ما اذا كانت الأزرار (سهم لأيمن)و(سهم لأيسر) مضغوطان ام لا ، ماذا سيحدث اذ تم الضغط على اى من المفتاحين هذا ما سأقوله ، هنا نحن استخدمنا المتغير "aY#" لكى يخزن قيمة .،،، الأمر "Wrapvalue" هى عبارة عن امر تثبيت لقيمة دائرية تقبل اكبر من الصفر واقل من 360 يعنى بالعامية امر يولد قيمة دائرية من صفر الى 360 ، وهذا الرقم هو ما سنستخدمة فى حساب مثالنا هذا للزوايا ، لو ان القيمة خرجت عن هذه الحدود سواء بأقل أو بأكثر ستقوم الدالة او الأمر Wrapvalue بأعادة لفها ، سوف تلف القيمة فى مثالنا من 365 الى القيمة 5 ،، اما داخل الأقواس فلقد وضعنا متغير الزاوية Y ثم ضفنا وطرحنا فى كلا السطرين العملية القيمة 5 ، اذن لو ضغط المفتاح الأيسر ستضاف القيمة 5 الى "aY#" وسوف تخزن فى المتغير "aY#" .

      Yrotate object 1,aY#
      ال "Yrotate object" هو امر استدارة للأوبجكت حول المحور Y ، اول رقم بعد الأمر هو رقم الأوبجكت اللذى تريد تدويرة ، اما الرقم الثانى فهى الزاوية اللتى تريد تدويرها للأبجكت ، ملاحظة لقد وضعنا مكان الرقم فى الثانى فى مثالنا متغير variable ، وفى كل مشاريع الدرك بيسك تستطيع تبديل هذا الرقم بمتغير ،،،،، اما اخر امر فهو امر SYNC وهو طبعا لتحديث المشهد انه مثل الريندر كما شرحناه فى الدرس السابق .

      اتمنى ان تكونوا قد استوعبتم الدرس ، حاولوا تغيير القيم بتتعرفوا اكثر على خبايا اكثر تسطيعون مثلا ذيادة رقم Move object 1,2 لتزيدو السرعة ، تسطيعون التبديل بين محاور الزاوية فى الأمر Object angle بدلا من Y الى X أو Z ،، وغيرة من الكثير من الخبايا ...

      انتظرونى فى الدرس القادم


      ملاحظة : قد تجد فى بعض الأسطر ان الكود معكوس والسبب طبعا صفحات الوب اللتى اكتب فيها الدرس ، وللتغلب على تلك المشكلة ومعرفة الكود بشكله الصحيح انسخ الكود مباشرة داخل برنامج الدركبيسك
      التعديل الأخير تم بواسطة Ahmedbna ; 06-02-2009 الساعة 10:01 AM

    2. #2
      التسجيل
      25-07-2006
      الدولة
      بغــداد
      المشاركات
      2,054
      المواضيع
      68
      شكر / اعجاب مشاركة

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

      بارك الله فيك اخوي فعلا دروسك رائعه ومفيده لنا

      احب اسئلك سؤال اذا عملت لعبه محترفة بالدارك بيسك هل تواجهك مشاكل البطيئ مثل الجيم ميكر؟؟

    3. #3
      التسجيل
      26-01-2004
      الدولة
      مصر
      المشاركات
      395
      المواضيع
      36
      شكر / اعجاب مشاركة

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

      السلام عليكم
      مرحب بيك اخوى أسود الرافدين ونورت المشاركة
      - خلى بالك ان اى محرك العاب فى العالم ممكن تواجه به مشكله البطى حتى وان كان محرك يستخدم لغة قوية ك ++c وللتغلب على تلك المشكلة فى الغالب ينصح من التقليل من الأبجكت المتحركك واللذى من الممكن ان تستخدمة بكثرة فى حدث واحد ، او من الموديلز الثقيل الموجود فى بؤرة تجمعية ايضا ، وايضا مصمم المكس عليه عامل مع المبرمج لحل تلك المشكلة ، فلابد من ان يراعى المصمم تصميم مجسمات لوبولى وتقليل عدد polygos فى الغالب حتى تتغلب على تلك المشكلة ، وستلاحظ فى لعبة مثل العاب gta ان ليس كل ما تراه بالخريطة محمل وذلك ليتغلبوا على البطىء بسبب كبر المساحة ،، اما الجيم ميكر فأعتقادى الشخصى انه صمم خصيصا لألعاب ثنائية الأبعاد وان كانوا قد طوروه ليصنع الألعاب الثلاثية الأبعاد ، لكن فى وجهة نظرى هو ليس بالبرنامج القوى ولهذا ستجد البطىء فيه اكثر من اى محرك اخر يدعم لغة برمجة قوية ومميزة مثل darkbasic - ++c - delphi ... الخ ،، اتمنى ان أكون افدتك ، تحياتى لك ، شكرا على المرور

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

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

      ما أعرف شاكول , بارك الله فيك هي كُل ما عندي ,

      +

      أرجوا بعدما تنتهي , أن تجمع الدروس في موضوع واحد + لك تكريم على ذلك ..

    5. #5
      التسجيل
      26-01-2004
      الدولة
      مصر
      المشاركات
      395
      المواضيع
      36
      شكر / اعجاب مشاركة

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

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

    6. #6
      التسجيل
      19-10-2007
      الدولة
      في الجانب المظلم من الـــــــDark basic
      المشاركات
      985
      المواضيع
      42
      شكر / اعجاب مشاركة

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

      السلام عليكم

      ماشاء الله عليك عندك روح ونفس لهذا الشيء ....إن شاء الله بيستمر هذا الشيء فيك.
      وكما قلت

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

    7. #7
      التسجيل
      26-01-2004
      الدولة
      مصر
      المشاركات
      395
      المواضيع
      36
      شكر / اعجاب مشاركة

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

      مشكور اخى نجد على مرورك على الموضوع

    8. #8
      التسجيل
      18-05-2008
      الدولة
      تحت سقف الإدارة الجديدة الفاشلة
      المشاركات
      287
      المواضيع
      50
      شكر / اعجاب مشاركة

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

      خطوه بخطوه للفهم





      صح



      مشكور

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

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