Saturday, September 25, 2010

XNA: Lesson1:الدرس الاول: مبادئ البرمجة بواسطة XNA

الدرس الاول: مبادئ البرمجة بواسطة

XNA

  • هدف الدرس:

سنقوم في هذا الدرس ببناء مشروع XNA فارغ و نطلع علي الملفات الموجودة فيه و شرح كل وظيفة فيه...

  • بناء مشروع فارغ:
    • افتح ال Visual C# 2008 Express ثم مشروع جديد من خلال

File è New project

    • ثم اختر Windows Game 3.0 من المربع الذي باليمين.
    • سنكتفي بنفس الاسم الافتراضي الموجود حاليا Windows Game1.
    • قم بتشغيل المشروع عن طريق الضغط علي F5
    • النتيجة ..... لا شئ J فقط شاشة زرقاء و لكننا تاكدنا انه تم انشاء المشروع بنجاح.
  • ملفات المشروع:
    • ستجد عدة ملفات اهمها هو:
      • Game1.CS: و هو الكلاس الخاص باللعبة و يحتوي علي كود اللعبة و هو نقطة البدء في اي لعبة XNA.
      • Content Folder: و هو مجلد هام جدا يوضع به كل المصادر التي سنستخدمها في اللعبة من صور و ملفات صوت و فيديو و موديلز 3D و اي شئ سنستخدمه في اللعبة ممكن نعتبره مخزن اللعبة.
  • Game Structure او هيكل اللعبة:
    • تقوم اللعبة بعمل loop مستمر من بدء اللعبة و حتي نهايتها.
    • تكون ال loop او اللفة بمقدار 60 مرة بالثانية يعني الثانية الواحدة يحدث فيها 60 تكرار ... هل تذكرون فكرة الرسوم المتحركة بوالت ديزني (فكرة عجلة الكرتون) كانت عبارة عن صور ثابتة و لكن مرتبة بشكل معين صورة وراء الاخري بحيث اذا دارت عجلة الكرتون تشعر و كانها رسوم متحركة J هذه نفس فكرة عمل الالعاب حيث في كل لفة خلال الثانية نقوم بتغيير مكان الصور او تكبيرها او تصغيرها او تكوين انفجار او تكوين تصادم و في نفس الوقت تظهر للمستخدم و كانها متحركة بشكل مستمر لا يقف.
    • احداث اللعبة و مراحلها: في اللعبة عدة احداث كل واحد وراء الاخر سنتعرف الان علي هيكل كروكي لمراحل اللعبة يسمي (Pseudo code):
      • Initialize graphics, input and sound controllers
        • تقوم اللعبة بالتعرف علي كارت الصوت و لوحة المفاتيح و الصوت
      • Load resources
        • تحميل الصور و الفيديو و كل المصادر الي وضعناها في مجلد ال Content
      • Start game loop. In every step:
        • بدء تكرارات اللعبة و في كل تكرار يحدث التالي
      • Gather user input
        • فحص الازرار المضغوطة من المستخدم او الماوس او ذراع الالعاب
      • Perform needed calculations (AI, movements, collision detection, etc.)
        • تطبيق المعادلات الرياضية و الفيزيائية و التصادمات الموجودة و المكتوبة من المبرمج.
      • Test for game ending criteria – if met, stop looping
        • فحص شرط انهاء اللعبة ان تحقق يتم اغلاق اللعبة و ان لا يتم الذهاب للحدث التالي
      • Draw (render) screen, generate sounds and game controller feedback
        • رسم الكائنات علي الشاشة و اصدار الاصوات
      • Finalize graphics, input, and sound
        • انهاء الاصوات و الادخالات و الصور
      • Free resources
        • تحرير الذاكرة من المصادر
      • طبعا تكرار اللفة التالية

  • ملف Game1.CS:
    • سنلقي نظرة علي الاحداث و الوظائف في هذا الملف:
      • Game1() – General initialization (Game1.cs)
        • يختص تحميل عام للمتغيرات في الكلاس
      • Initialize() – Game initialization (Game1.cs)
        • تحميل اللعبة الاساسي و يفضل وضع اي تحميل للمتغيرات فيه
      • LoadContent() – Load Graphics resources (Game1.cs)
        • تحميل مصادر اللعبة من صور و فيديو و خلافه
      • Update() - Read user input, do calculations, and test for game ending (Game1.cs)
        • قراءة ادخالات لوحة المفاتيح و الماوس و ذراع الالعاب و حساب المعادلات و فحص شرط نهاية اللعبة
      • Draw() – Renderization code (Game1.cs)
        • رسم اللعبة
      • UnloadContent() – Free graphics resources (Game1.cs)
        • تحرير الذاكرة

هذه هي احداث اللعبة من بدايتها و نهايتها و الان انتهي الدرس الاول ...

التطبيق:

انشاء مشروع XNA فارغ و ملاحظة الوظائف المذكورة في هذا الدرس ....

8 comments:

  1. انا عندي مشكلة
    لما بضغط على F5
    م البداية خالص
    بيقوللي الرساله الاتيه :
    no suitable graphics card foung
    cant find a direct 3d device
    this programm requires pixel shader

    اعمل ايييييييييه !!!

    ReplyDelete
  2. تاكدي من تحميل برنامج ال
    Direct x
    علي جهازك اولا قبل تشغيل اللعبة

    شكرا لكي

    ReplyDelete
  3. للاسف
    بيقوللي نفس الكلام بردو

    بعد ما نزلت النسخة دي

    http://www.jsoftj.com/Start-Download/5123/

    ReplyDelete
  4. طيب جربي اللينك دا

    http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=en

    ReplyDelete
  5. انا اسفة ع الازعاج جدا والله

    بس هوا قاللي ان في نسخة أحدث موجودة على جهازي

    فلا داعي للتنصيب

    ؟؟؟

    و جزاك الله خيرا فعلا ع المساعدة

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

    ReplyDelete
  6. طيب ممكن تعملي صورة من الخطا و ترسليه لي علي الميل؟

    ReplyDelete
  7. http://i26.servimg.com/u/f26/11/36/10/59/clip_i12.jpg

    معلش فعلا
    بس انا معرفتش اوصل للميل بردو

    عامة انا هحاول ازود عدد مشاركاتي عشان احل المشكلة دي

    ReplyDelete
  8. انا ايميلي هو
    robot2030@hotmail.com

    ReplyDelete