النتائج 1 إلى 8 من 8

الموضوع: برمجة الألعاب الدرس الأول

  1. #1

    برمجة الألعاب الدرس الأول

    كلما حاولت أن أكتب شيء ظهر بطريقة مقلوبة أرجو من القائمين على المنتدى تفعيل زر code الي الزر تبعه عليه # مثلا عند وضع
    كود:
    #include "allegro.h"
    تظهر مقلوبة أرجو من القائمين جعل اتجاه الكود من اليسار لليمين

    include "allegro.h"بشكل مؤقت لن أكتب # قبل include أضفها أنت
    وسأكتب comment بعد كل أمر حتى يظهر بشكل صحيح

    سأشرح في هذا الدرس تركيب أي برنامج مكتوب على allegro
    لا تفزع من كثرة الأسطر لأنها ستتكرر في كل برنامج بمعنا أنك فقط رح تعمل copy + paste
    يبدأ البرنامج ب
    include "allegro.h" // this is the lib header
    ثم يأتي ال main على الشكل الآتي
    int main(int argc,char *argv[]) //the main function
    ثم الحاصرتين {} وبينهما البرنامج
    ثم في نهاية نضيف بعض من سحر allegro
    END_OF_MAIN(); // this is a trik
    هنا يكمن جمال هذه المكتبة بحيث أ، هذا الذي أضفناه في الأخير يحول main إلى بعض خزعبلات windows مثلا winmain في بعض الكمبايلرات وفي بعضها الآخر main بحيث يضمن أن برنامجك سيعمل
    ----------------------------
    داخل الحاصرتين اكتب الآتي قبل كل شيء
    allegro_init(); // start
    ثم نختار عدد الألوان الذي نريد
    set_color_depth(8); // 256 colors
    أو
    set_color_depth(16); // 16-bit colors
    ثم نحجز شاشة رسومية بالأمر
    set_gfx_mode(GFX_AUTODETECT_FULLSCREEN , 320, 200, 0, 0); // hmm
    أو
    set_gfx_mode(GFX_SAFE , 320, 200, 0, 0); // hmm
    الأولى تحجز شاشة على fullscreen والثاني fullscreen أو عادي بس آمن يعني دايما تعمل
    طبعا ليس كل الكروت تدعم كل ال resulutions لذلك يجب أن نفحص هل ذلك جائز أي يصبح الكود
    // now try full secreen with acceleration
    if (set_gfx_mode(GFX_AUTODETECT_FULLSCREEN , 320, 200, 0, 0) != 0) // test
    {
    // if fail try safe (may be windowed mode)
    if (set_gfx_mode(GFX_SAFE , 320, 200, 0, 0) != 0)
    {
    // if fail return to text mode and exit
    set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
    // the format of allegro_message is like printf
    allegro_message("Unable to set any graphic mode\n%s\n", allegro_error);
    exit(1);
    }
    }
    لم تنجح معي أن أجعلها تبدو صحيحة لذا أنظر الملف المرفق g_main.cpp في init_graph()
    طبعا تستطيع استبدال 320 و 200 ب 640 و 480 او أي شي آخر
    ----------------------------------
    مذا لدينا الآن ؟
    شاشة رسومية , نستطيع الآن نعطي الأوامر التي ترسم
    --------------------
    سأكمل فيما بعد ...
    انظر ال demo
    -------------------------------------------------------------------------
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip game1.zip‏ (4.0 كيلوبايت, المشاهدات 58)

  2. #2
    أين كنا ... أه
    نستطيع أن نرسم الأشياء الآن
    putpixel(screen,x,y,makecol(255,0,0)); // red dot
    لاحظ makecol تعطيها R G B فتعطيك اللون بغض النظر هل الشاشة 256 لون أم 16 بت
    بنفس الطريقة getpixel تعطي اللون
    وأيضا
    line (screen,x1,y1,x2,y2,makecol(0,0,255)); //blue line
    rect(screen,x1,y1,x2,y2,makecol(255,255,255)); // white rect
    triangle(screen,x1,y1,x2,y2,x3,y3,makecol(0,255,0); // a green triangle
    وهناك مضلع ودوائر ....
    واذا اردت أ، ترسم على Bitmap بدل الشاشة استبدل screen باسم الBitmap
    أقصد بال Bitmap هو مكان في الذاكرة يمكنك أ، تخزن فيه صور

    screen هي Bitmap معرف داخل allegro كل ما يرسم فيها يظهر على الشاشة
    في نظام 256 لون تعمل pal عن طريق
    PALETTE pal1
    تستطيع تحميل ملفات tga bmp lbm pcx عن طريق load_bitmap
    BITMAP *mypic=load_bitmap("C:\\delme.bmp",pal1); // hmm
    وتستطيع تفعيله ال pal عن طريق اذا كانت الصورة 256 لون
    set_palette(pal1); // aaa
    -----------------------
    لمسح الشاشة
    clear_bitmap(screen); // woo
    ولطلاء الشاشة بلون
    clear_to_color(screen,makecol(255,255,0)); // haha
    -------------------------------------

  3. #3

    وقت الجد

    كل الذي مضى لم يكن مهما جدا لأنه من النادر أن نستعمله أما الآن فهذه الأوامر هي التي يجب تذكرها
    وهو blit وفيرحاناته المختلفة وهي
    blit masked_blit streach_blit وأخيرا masked_streach_blit
    وصيغتها كالآتي
    لنفرض أنك تريد أن ترسم صورة محملة من ملف bmp على الشاشة
    blit(Mybmp, screen, 0, 0, x,y, width, height); // Hmm
    اما masked فتعني أن تجعل الخلفية شفافة

    اللون الشفاف هو أول لون في pal أي 0 في حالة 256 لون
    وهو أيضا الزهري السحري 255,0,255 في طور الألوان الحقيقية

    وstreach تعني مع تغير الشكل

  4. #4
    شكراً لك على الدرس ":"

  5. #5
    التسجيل
    22-08-2001
    الدولة
    المملكة العربية السعودية
    المشاركات
    2,655
    اذا ماكنت مخطئ هذا لغة C ؟

  6. #6
    التسجيل
    21-07-2002
    الدولة
    KuwaiT
    المشاركات
    344
    شكر ا اخي على الشرح ولكن اتمنى ان تضع كود كل درس في المرفقات

    لان شكل هذه الاكواد في المنتدى ( تعقد ) :0)


    شكرا للمره الثانيه

  7. #7
    الرسالة الأصلية كتبت بواسطة كاسر الألعاب
    اذا ماكنت مخطئ هذا لغة C ؟
    إنت مخطىء هذه ليست لغة ال C إنما مكتبة ال Allegro

  8. #8

    نعم ولا

    الكود ++C نعم صحيح و السي كما نعلم تحتوي على الكثير من المكتبات مثل iostream.h و stdio.h و غيرها هذا الكود عبارة عن ++C ولكنه يستخدم مكتبة allegro.h
    يبدأ ب include "allegro.h #
    -----------
    انظر الدرس رقم صفر

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

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