صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 43

الموضوع: [درس] بدء ++C لبرمجة الألعاب

  1. #1
    التسجيل
    27-11-2002
    الدولة
    Demon * World
    المشاركات
    300

    [درس] بدء ++C لبرمجة الألعاب

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


    اولا مبارك عليكم شهر رمضان المبارك و الله يعوده عليكم بكل خير و محبة و سلام

    و حبيت اقولكم لعبة Sonic Xtreme NeXT قريب و تنزل نسخة الألفا و انا طلعت من فريق البرمجة لأني الحين قاعد اتعلم الDirectX و الحين انا صرت مدير العلاقات العامة Community Manager و مصمم الموقع و كاتب قصص



    عشان جذي انا تفرغت لكم و بحط دروس مني لكم للبدء برمجة ألعاب في الـ ++C و إنشاء الله بس اخلص تعلم برمجة الـ ++C بالدايركت اكس احط دروس



    مقدمة عن الـ ++C :

    لغة ال++C صممها بيارن ستروسترب


    في مختبرات Bill Gates كتحسين للغة الـ C خصوصا لغة الـ C ليست كاملة ككمال ++C. اشتغل عليها المهندس بيارن سنة 1979. بس ليش قرر المهندس بيارن تطوير لغة الـ ++C على حساب الـ C ؟؟؟
    لأن الـ C لغة سريع جدا جدا جدا و قوية في نفس الوقت. فقد ظاف المهندس بيارن الكثير من المميزات إلى الـ C كالـ Functions و الـ Refrences و الـ Operator overfloating. و أول إطلاق رسمي تجاري للـ ++C كان في أكتوبر سنة 1985. الإسم الأول للغة الـ ++C كان The New C و تم تغييره إلى C with classes ثم إلى ++C .


    بس ليش شركات الألعاب العملاقة مثل EA و Capcom و Blizzard تختار لغة صعبة بحتة لتصميم لعبة ؟
    تخيل انك قاعد تصمم لعبة بلغة الآلة :
    11010101010101010000111100

    اكيد راح تكون اقوى لعبة بالعالم كله من الناحية البرمجية ، و راح تكون أسرع لعبة و أقوى لعبة أقوى من Final Fintasy و Resident Evil و Age of Empires. بس منو الفاظي اللي يبي يبرمج بلغة الآلة ؟؟


    لكن تخيل تبي تبرمج اللعبة بلغة انزل من رتبة لغة الآلة برتبة او رتبتين!!! راح تكون بنفس القوة و السرعة و لكن اقل بقليل جدا و اهي الـ ++C

    هذا سبب اختيار الشركات العملاقة للغة الـ ++C :
    1-لغة سريعة : فالبرامج المكتوبة جيدا تكون سريعة بسرعة مذهلة !! احد من اهداف الـ ++C هو التشغيل على اكمل وجه. و لغة الـ ++C تتفاهم مع الهاردوير من غير عميل. يعني على طول من إيدك لي الكمبيوتر
    2-مرونة اللغة : الـ ++C لغة ثنائية النماذج ، يعني يمكن تسوي برنامج بأكثر من طريقة و فيها تقدر تبرمج باستخدام الكائنات
    3-لغة مدعومة جيدا: حيث هذه اللغة مدعومة جيدا من كل النواحي : الفيزيا ، 2دي ، 3دي و محركات الأصوات.


    ماذا بعد ؟؟؟
    لتستفيد من هذا الموضوع تحتاج لشيء واحد مجاني فقط !!!
    Compiler و آخر و اقوى Compiler متوفر اهو DEV-C++ bloodshed و اهو مجاني بالكامل لا تسجيل و لا هم يحزنون و هذا رابط التنزيل مباشرة :
    http://dw.com.com/redir?pid=10498828...-10498828.html





    يالله نبدا بالدرس الاول بإذن الله





    الدرس الأول : العمل مع المتغيرات و الثوابت :


    1-كتابة أول برنامج لك في الـ ++C:

    اكتب هذا الكود و سو له compile :
    كود:
    //Game Over 
    //Very first C++ program
    
    #include <iostream>
    
    int main()
    {
    std::cout << "Game Over!" << std::endl;
    return 0;
    }
    نلاحظ اول سطرين السلاش ، و اهي علامة التعليق. باختصار الكومبايرلر ما يعطي هالأسطر اي أهمية و يتجاهلها. هذي الأسطر تفيدك إذا تحب تكتب تعليق قبل loop او شي عشان يذكرك

    السطر الثالث انا ادخلت مكتبة iostream و اهي تنطق جذي :
    آي أو ستريم

    هذي المكتبة اهي تعطيك بالتحكم اب كائن cout و cin (يأتي شرح cin بالمستقبل بإذن الله)

    السطر الرابع و اللي يحتوي على int main اهو هيكل البرنامج حيث int اختصار integer و اهو عدد صحيح ، و هذا يعني ان البرنامج يعمل و يرد بقيمة صحيحة ، و القوس } و { اهم بدء و إنهاء الوظيفة int main


    السطر الخامس و اهو يعرض Game Over ، حيث cout تنطق ك: c out ، و مثل ما قريتها "out" و هذا يعني يطلع شي للخارج و اهو سطر Game Over و هنا نستخدم المشغل الخارجي :
    >> و هذا يعني المعلومات خلف هذا السهم تابعة للكائن cout



    السطر الأخير و اهو return 0; اهو يعني إنهاء البرنامج بدون اي مشكلة

    2- العمل مع name space std


    تخيل انت كل ساعة تبي تكتب الكائن cout راح تحتاج إلى كتابة std، تتوقع ما لها حل ؟؟ لها حل و اهي namespace std و اهو يجنبك بكتابة std كل مره

    كود:
    //Game Over 2.0
    //Using namespace std;
    
    #include<iostream>
    using namespace std;
    
    int main()
    {
    cout << "Game over" << endl;
    
    return 0;
    }

    3- مشغلات العمليات الحسابية الأساسية :
    علامة الضرب بالسي بلس بلس اهي : *
    علامة القسمة : /
    علامة الجمع : +
    علامة الطرح : -


    و في علامة زيادة للعمليات الحسابية و اهي % و اهي علامة للقسمة لكن تقسم على عدد على عدد ما يقبل القسمة عليه و يعطيك قيمة صحيحة بدون اي كسور او ارقام عشرية
    يعني مثلا لو تفتح الآلة الحاسبة و تقسم 7 على 3 راح تعطيك
    2.3333333333333333333333333333333


    فهالعلامة تفيدك في حالة انك تبي حاصل العملية عدد صحيح


    هذا برنامج توضيحي :
    كود:
    #include<iostream>
    
    using namespace std;
    
    int main()
    {
    cout << "7 + 3= " << 7 + 3 << endl;
    cout << "7 - 3= " << 7 - 3 << endl;
    cout << "7 * 3= " << 7 * 3 << endl;
    cout << "7 / 3= " << 7 / 3 << endl;
    cout << "7 % 3= " << 7 % 3 << endl;
    
    return 0;
    }


    4- استقبال البيانات من المستخدم باستخدام الكائن cin



    عرفنا كيفية اخراج معلومات على الشاشة ، الحين لازم نعرف اشلون نستقبل بيانات من المستخدم


    أنواع المتغيرات
    :
    1- int : و هو عادة يكون عدد
    2- char : و اهو حروف
    3- bool : و اهو لعملية true or false



    إعلان المتغيرات يكون كالتالي
    كود:
    int score;
    char playAgain;
    bool shieldsUp;

    و بعدين تقدر تتلاعب بقيمة المتغير مثل ما تحب يعني مثلا تبي تعين قيمة البدء للمتغير fine من 7 يكون كالتالي :

    كود:
    int fine = 7;

    و تعيين المتغير يكون قبل البدء باستخدامه ، يعني مو تسوي عملية حسابية تشمل المتغير مثلا number و بعدها العملية تعين المتغير number.... لأ المتغير يكون اولا


    و لا تتعب نفسك تعين المتغيرات اول البرنامج ، تقدر تعين المتغير قبل ما تستخدمه


    هذا برنامج يعرض متغيرات بدون التلاعب فيها :
    كود:
    //Declaring variables
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    int score = 0;
    int health = 6565.3;
    int ammo = 5; 
    
    
    cout << "\nYour score is " << score << endl;
    cout << "\nYour health is " << health << endl;
    cout << "\nYour ammo is " << ammo << endl;
    
    return 0;
    }
    الحين ايي دور إدخال البيانات ، طبعا قبل لا المستخدم يدخل بيانات لازم يكون في متغير تنحفظ داخله البيانات

    كود:
    //Getting data from the user
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
    int money;
    cout << "\nHow much money you have ?" << endl;
    cin >> money;
    
    cout << "\nYou have << money << " in your account " << endl;
    }
    لاحظت اولا الـ n\ هذا يقول للبرنامج اكتب هالشي بسطر يديد

    ثانيا : عينت المتغير money و قيمته الإفتراضية صفر ، فلما يدخل المستخدم قيمة راح تكون المعادلة :
    money + 0

    و شوف اسهم الـ cin تتجه إلى المتغير هذا يعني البرنامج ياخذ قيمة الإدخال و يعطيها للمتغير








    تمرين اليوم :
    سو لي برنامج ياخذ رقم من المستخدم و يجمعه مع 100 و يطلع النتيجة


    مساعدة :
    1- استخدم متغير واحد بإسم number
    2-استخدم الكائن cout و cin


    إذا خلصت البرنامج حط الكود اهني وانا اختبره





    ملاحظة : إذا كنت تعاني من مشكلة سرعة إغلاق التطبيق اظف المكتبة

    كود:
    #include<conio.h>


    اظف هالكود قبل return 0;

    كود:
    getch();


    فيصبح شكل البرنامج العام :
    كود:
    #include<iostream>
    #include<conio.h>
    
    using namespace std;
    
    int main()
    {
    cout << "Monatada.com" << endl;
    
    getch();
    return 0;
    }
    www.nightvisiongames.com
    المشروع الحالي (غير معلن عنه) : N-1
    نوع اللعبة : RTS (إستراتيجية)
    لغة اللعبة : English + عربي (احتمال كبير)
    فريق العمل :
    حسين هاني (أنا) : مبرمج
    المهندس وائل : مبرمج
    فراس الإسكندراني : تصميم و إدارة
    Snake_x86 : المصمم القائد لرسوم الـ 3D

    إذا تبي تدخل معانا ، ادخل منتدانا الإنظمام من هذي الوصلة :
    http://nightvisiongames.com/communit...hp?showforum=4

    و شوف الموضوع المثبت

  2. #2
    التسجيل
    21-02-2003
    الدولة
    الإمارات العربية المتحدة
    المشاركات
    2,350

    رد: بدء ++C لبرمجة الألعاب

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

  3. #3
    التسجيل
    24-01-2006
    الدولة
    QATAR
    المشاركات
    4,098

    رد: [درس] بدء ++C لبرمجة الألعاب

    شكرا على هذا درس ^^
    فهو مفيد جدا جدا وخاصة انه للغة C++ تعتمد عليها الكثير من برامج
    -------------------------------
    بنسبة للعبتكم سونيك ؟ ليه أخترتو سونيك ؟ ليه مافكرتو تصممون ؟ شخصية خاصة ؟ TradeMark
    ولا انت أشتركتو مع Sega ?

  4. #4
    التسجيل
    05-11-2000
    الدولة
    arabgn.net
    المشاركات
    4,662

    رد: [درس] بدء ++C لبرمجة الألعاب

    السلام عليكم ... الله يبارك فيك

    ما شاء الله هذه السلسلة إذا اكملتها سوف تأخذ الكثير من الأجر لأن الكثير هنا بودهم أن يتعلم برمجة الألعاب بواسطة C++ من خبير ,,,

    و موفقين في لعبة سونيك و انا كلي لهفة لأحصل على نسخة الديمو

  5. #5
    التسجيل
    27-11-2002
    الدولة
    Demon * World
    المشاركات
    300

    رد: [درس] بدء ++C لبرمجة الألعاب

    العفو جميعا و بالنسبة للعبة سونيك خلصنا تقريبا الrendring للشخصيات و النسخة ألفا يتم التحضير لها



    و بالنسبة للدرس ما راح اكمل إلا إذا شفت واحد خلص التمرين

    www.nightvisiongames.com
    المشروع الحالي (غير معلن عنه) : N-1
    نوع اللعبة : RTS (إستراتيجية)
    لغة اللعبة : English + عربي (احتمال كبير)
    فريق العمل :
    حسين هاني (أنا) : مبرمج
    المهندس وائل : مبرمج
    فراس الإسكندراني : تصميم و إدارة
    Snake_x86 : المصمم القائد لرسوم الـ 3D

    إذا تبي تدخل معانا ، ادخل منتدانا الإنظمام من هذي الوصلة :
    http://nightvisiongames.com/communit...hp?showforum=4

    و شوف الموضوع المثبت

  6. #6
    التسجيل
    04-02-2004
    الدولة
    الزمن
    المشاركات
    455

    رد: [درس] بدء ++C لبرمجة الألعاب

    مشكور على الدروس و ان متابع انشاء الله لاني ضعيف بالسي! ..... نسبياً
    الحين عندي سؤال و هو شو فائدة ال std؟
    ممكن استخدمها و ممكن اتجنب استخدامها استخدمها! حتى بدون اضافة using namespace std;
    و البرنامج dev C++ الصراحة رهيب
    التعديل الأخير تم بواسطة snake_x86 ; 24-09-2006 الساعة 06:30 PM
    دروس الدارك بيسيك
    1
    2
    3
    4
    5

  7. #7
    التسجيل
    21-02-2003
    الدولة
    الإمارات العربية المتحدة
    المشاركات
    2,350

    رد: [درس] بدء ++C لبرمجة الألعاب

    اقتباس المشاركة الأصلية كتبت بواسطة snake_x86 مشاهدة المشاركة
    مشكور على الدروس و ان متابع انشاء الله لاني ضعيف بالسي! ..... نسبياً
    الحين عندي سؤال و هو شو فائدة ال std؟
    ممكن استخدمها و ممكن اتجنب استخدامها استخدمها! حتى بدون اضافة using namespace std;
    و البرنامج dev C++ الصراحة رهيب


    فعلاً لاحظت هذا الشيء ...
    و
    كود:
    #include <iostream>
    لازم يكون
    كود:
    #include <iostream.h>
    يمكن الامور تغيرت لاني درست السي سنه 2002

  8. #8
    التسجيل
    04-02-2004
    الدولة
    الزمن
    المشاركات
    455

    رد: [درس] بدء ++C لبرمجة الألعاب

    اقتباس المشاركة الأصلية كتبت بواسطة Son Of UAE مشاهدة المشاركة
    فعلاً لاحظت هذا الشيء ...
    و
    كود:
    #include <iostream>
    لازم يكون
    كود:
    #include <iostream.h>
    يمكن الامور تغيرت لاني درست السي سنه 2002
    صح هذا اللي كنت احاول اتذكره!
    الحالة الاولة تنفع بس لو اضفت using namespace std;
    اما الحالة الثانية تنفع بالحالتين!
    دروس الدارك بيسيك
    1
    2
    3
    4
    5

  9. #9
    التسجيل
    26-01-2006
    الدولة
    Retro Gamers
    المشاركات
    2,937

    Cool رد: [درس] بدء ++C لبرمجة الألعاب

    واو
    مشكور جدا جدا
    إن شاء الله اواصل معك حتى النهاية
    سأحاول ان أطبق تمرينك ^_^
    و سأضعه هنا بعد غد إن شاء الله


    *تم دخول الموضوع للـFavorites
    .
    .
    Joga Bonito

    MP3 Player and proud :P

  10. #10
    الصورة الرمزية سامي.خ
    سامي.خ غير متصل عضــو قديـــر
    Indie Games supporter
    الفائز الثاني بمُسابقة MGM 2
    التسجيل
    07-05-2005
    الدولة
    المنطقة الغربية (غير مستقر)
    المشاركات
    2,437

    رد: [درس] بدء ++C لبرمجة الألعاب

    آه يا لغة C++
    كانت أمنيتي أتعلمها لكن مستقبلي المهني ما ساعدني
    إن شاء الله أتعلمها عندكم
    سبحان الله وبحمده...سبحان الله العظيم
    اذا اردت أن تجدني اضغط هنا
    هذا أول موضوع لي بقسم صناعة الألعاب

  11. #11
    التسجيل
    27-11-2002
    الدولة
    Demon * World
    المشاركات
    300

    رد: [درس] بدء ++C لبرمجة الألعاب

    مثل ما قلت لكم سبب .h اهو الدعم المتواصل للسي بلس بلس


    يالله شباب وين الحل
    www.nightvisiongames.com
    المشروع الحالي (غير معلن عنه) : N-1
    نوع اللعبة : RTS (إستراتيجية)
    لغة اللعبة : English + عربي (احتمال كبير)
    فريق العمل :
    حسين هاني (أنا) : مبرمج
    المهندس وائل : مبرمج
    فراس الإسكندراني : تصميم و إدارة
    Snake_x86 : المصمم القائد لرسوم الـ 3D

    إذا تبي تدخل معانا ، ادخل منتدانا الإنظمام من هذي الوصلة :
    http://nightvisiongames.com/communit...hp?showforum=4

    و شوف الموضوع المثبت

  12. #12
    التسجيل
    05-11-2000
    الدولة
    arabgn.net
    المشاركات
    4,662

    رد: [درس] بدء ++C لبرمجة الألعاب

    اقتباس المشاركة الأصلية كتبت بواسطة GOGENDANTESS مشاهدة المشاركة
    مثل ما قلت لكم سبب .h اهو الدعم المتواصل للسي بلس بلس


    يالله شباب وين الحل
    كذا بتقصو علينا انا قلت بخلي هذا الموضوع عندي في الارشيف لان ما عندي وقت ابدا بس ما دامك مصر انا رح احاول اتابع معك عل سريع و احل

  13. #13
    التسجيل
    21-02-2003
    الدولة
    الإمارات العربية المتحدة
    المشاركات
    2,350

    رد: [درس] بدء ++C لبرمجة الألعاب

    ممم .. اعتقد ان الموضوع يفيد الاعضاء على المدى الطويل وليس الان فلو توقفت فسوف تحرم الكثير من الناس من هذا الموضوع. حتى ولو لم يرد عليك أحد حاول ان تعطي ما عندك .. و كلنا نقدر الجهد المبذول. فأكثر الاعضاء حاول وضع دروس لتعليم البقية. ارجو عدم التقيد بوجود حل للتمارين ام لا ...

  14. #14
    التسجيل
    09-08-2006
    الدولة
    الجزائر
    المشاركات
    108

    رد: [درس] بدء ++C لبرمجة الألعاب

    شكرا لك أخي .
    بالتوفيق.

  15. #15

    رد: [درس] بدء ++C لبرمجة الألعاب

    شكراً على مجهودك ... إستمر حتى النهاية

صفحة 1 من 3 123 الأخيرةالأخيرة

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

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