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

الموضوع: [درس]عمل لعبة 3Dعلى الجيم ميكر

  1. #1
    التسجيل
    18-05-2008
    الدولة
    تحت سقف الإدارة الجديدة الفاشلة
    المشاركات
    287

    [درس]عمل لعبة 3Dعلى الجيم ميكر

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



    ]درس[عمل لعبة 3Dعلى الجيم ميكر



    هذا الدرس أخذتة من بعض الأجانب المحترفين في الجيم ميكر



    المهم......نبدأ:-


    1-أدرج سبعة sprites ويجب أن يكونTransparent غير مفعل


    وأيضن يجب ألا يكون في أي سبرايت صح في مربعة


    إلا السبرايت الأول sprite1








    أ-السبرايت الأول:
    الاسم: sprite1
    اللون:أصفر
    الحجمW:32) (H:32)
    Bonding box:Manual
    ب-السبرايت التاني:
    الاسم: spr_corners_1
    اللون:أسود
    الحجمW:800) (H:600)
    Bonding box:Automatic
    ج-السبرايت الثالث:
    الاسم: spr_player
    اللون:أسود
    الحجمW:6) (H:6)
    Bonding box:Automatic
    د-السبرايت الرابع:
    الاسم: spr_wall_16
    اللون:أسود
    الحجمW:16) (H:16)
    Bonding box:Automatic
    س-السبرايت الخامس:
    الاسم: spr_wall_8
    اللون:أسود
    الحجمW:8) (H:8)
    Bonding box:Automatic
    ص-السبرايت السادس:
    الاسم: spr_wall_hs
    اللون:أسود
    الحجمW:12) (H:4)
    Bonding box:full image
    و-السبرايت السابع:
    الاسم: spr_dot
    اللون:أخضر غامق(مثل اللون الأصلي)
    الحجمW:1) (H:1)
    Bonding box:Automatic
    2-أضيف الصوت


    أنا عندي صوت






    يجب أن يكون الصوت على اسم النغمة



    3-أضف Background


    أنا عندي






    يجب أن تكون الصورة على اسم الصورة المرفقة
    الملفات المرفقة الملفات المرفقة
    التعديل الأخير تم بواسطة AMB0 ; 24-06-2008 الساعة 05:12 PM

  2. #2
    التسجيل
    18-05-2008
    الدولة
    تحت سقف الإدارة الجديدة الفاشلة
    المشاركات
    287

    رد: [درس]عمل لعبة 3Dعلى الجيم ميكر

    4-أضف إسكربت
    أ-الاسم: scr_compare_angles
    النص:
    //angle_dist(ang1,ang2);
    return ((((argument0 - argument1) mod 360) + 540) mod 360) - 180;

    يحدد مساحة السطح ورؤية الكميرا
    ب-الاسم: createFromObj
    النص:
    // MOSAIC Light 3D OBJ IMPORTER
    // (c) 2006. Zoltan Percsich. All Rights Reserved.
    // Don't edit this script
    filename=argument0;
    flipnormals = 1;
    if (argument1>0) flipnormals=-1;
    vertex_list1=ds_list_create();ds_list_clear(vertex_list1);ds_list_add(vertex_list1,0);
    vertex_list2=ds_list_create();ds_list_clear(vertex_list2);ds_list_add(vertex_list2,0);
    vertex_list3=ds_list_create();ds_list_clear(vertex_list3);ds_list_add(vertex_list3,0);
    normal_list1=ds_list_create();ds_list_clear(normal_list1);ds_list_add(normal_list1,0);
    normal_list2=ds_list_create();ds_list_clear(normal_list2);ds_list_add(normal_list2,0);
    normal_list3=ds_list_create();ds_list_clear(normal_list3);ds_list_add(normal_list3,0);
    texture_list1=ds_list_create();ds_list_clear(texture_list1);ds_list_add(texture_list1,0);
    texture_list2=ds_list_create();ds_list_clear(texture_list2);ds_list_add(texture_list2,0);
    faces_list=ds_list_create();ds_list_clear(faces_list);
    fp=file_text_open_read(filename);
    for (i=0;file_text_eof(fp)==false;i+=1) {
    row=file_text_read_string(fp);row=string_replace_all(row," "," ");
    if (string_char_at(row,1)=="v" && string_char_at(row,2)==" ") {
    row=string_delete(row,1,string_pos(" ",row));
    vx=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    vy=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    vz=real(string_copy(row,1,string_length(row)));
    ds_list_add(vertex_list1,vx);
    ds_list_add(vertex_list2,vy);
    ds_list_add(vertex_list3,vz);
    }
    if (string_char_at(row,1)=="v" && string_char_at(row,2)=="n") {
    row=string_delete(row,1,string_pos(" ",row));
    nx=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    ny=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    nz=real(string_copy(row,1,string_length(row)));
    ds_list_add(normal_list1,nx);
    ds_list_add(normal_list2,ny);
    ds_list_add(normal_list3,nz);
    }
    if (string_char_at(row,1)=="v" && string_char_at(row,2)=="t") {
    row=string_delete(row,1,string_pos(" ",row));
    tx=real(string_copy(row,1,string_pos(" ",row)));
    row=string_delete(row,1,string_pos(" ",row));
    ty=real(string_copy(row,1,string_length(row)));
    ds_list_add(texture_list1,tx);
    ds_list_add(texture_list2,ty);
    }
    if (string_char_at(row,1)=="f" && string_char_at(row,2)==" ") {
    row=string_replace_all(row," "," ");
    row=string_delete(row,1,string_pos(" ",row));
    if (string_char_at(row,string_length(row))==" ") row=string_copy(row,0,string_length(row)-1);
    face_num=string_count(" ",row);
    face_division=1;
    temp_faces[0]=0;
    for (fc=0;fc<face_num;fc+=1) {
    f=string_copy(row,1,string_pos(" ",row));
    row=string_delete(row,1,string_pos(" ",row));
    temp_faces[face_division]=f;
    face_division+=1;
    }
    f=string_copy(row,1,string_length(row));temp_faces[face_division]=f;
    if (face_division==3) {
    f1=temp_faces[2];
    f2=temp_faces[3];
    f3=temp_faces[1];
    ds_list_add(faces_list,f1);
    ds_list_add(faces_list,f2);
    ds_list_add(faces_list,f3);
    } else {
    f1=temp_faces[2];
    f2=temp_faces[3];
    f3=temp_faces[1];
    ds_list_add(faces_list,f1);
    ds_list_add(faces_list,f2);
    ds_list_add(faces_list,f3);
    for (t=0;t<face_division-3;t+=1) {
    f1=temp_faces[4+t];
    f2=temp_faces[1];
    f3=temp_faces[3+t];
    ds_list_add(faces_list,f1);
    ds_list_add(faces_list,f2);
    ds_list_add(faces_list,f3);
    }
    }
    }
    file_text_readln(fp);
    }
    file_text_close(fp);
    tm=d3d_model_create();
    tsn=0;
    d3d_model_primitive_begin(tm,pr_trianglelist);
    for (fc=0;fc<ds_list_size(faces_list);fc+=1) {
    sub_face=ds_list_find_value(faces_list,fc);
    if (string_count("/",sub_face)==0) {
    f_index=sub_face;
    t_index=-1;
    n_index=-1;
    }
    if (string_count("/",sub_face)==1) {
    f_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
    sub_face=string_delete(sub_face,1,string_pos("/",sub_face));
    t_index=string_copy(sub_face,1,string_length(sub_face));
    n_index=-1;
    }
    if (string_count("/",sub_face)==2 && string_count("//",sub_face)==0) {
    f_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
    sub_face= string_delete(sub_face,1,string_pos("/",sub_face));
    t_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
    sub_face= string_delete(sub_face,1,string_pos("/",sub_face));
    n_index=string_copy(sub_face,1,string_length(sub_face));
    }
    if (string_count("/",sub_face)==2 && string_count("//",sub_face)==1) {
    sub_face=string_replace(sub_face,"//","/");
    f_index=string_copy(sub_face,1,string_pos("/",sub_face)-1);
    sub_face= string_delete(sub_face,1,string_pos("/",sub_face));
    t_index=-1;
    n_index=string_copy(sub_face,1,string_length(sub_face));
    }
    vx=ds_list_find_value(vertex_list1,floor(real(f_index)));
    vy=ds_list_find_value(vertex_list2,floor(real(f_index)));
    vz=ds_list_find_value(vertex_list3,floor(real(f_index)));
    if (floor(real(n_index))!=-1 && ds_list_size(normal_list1)>=1) {
    nx=flipnormals*ds_list_find_value(normal_list1,floor(real(n_index)));
    ny=flipnormals*ds_list_find_value(normal_list2,floor(real(n_index)));
    nz=flipnormals*ds_list_find_value(normal_list3,floor(real(n_index)));
    } else {
    nx=0;
    ny=0;
    nz=0;
    }
    if (floor(real(t_index))!=-1 && ds_list_size(texture_list1)>=1) {
    tx=ds_list_find_value(texture_list1,floor(real(t_index)));
    ty=ds_list_find_value(texture_list2,floor(real(t_index)));
    } else {
    tx=0;
    ty=0;
    }
    d3d_model_vertex_normal_texture(tm,vx,vy,vz,nx,ny,nz,tx,ty);
    tsn+=1;
    if (tsn==999) {
    tsn=0;
    d3d_model_primitive_end(tm);
    d3d_model_primitive_begin(tm,pr_trianglelist);
    }
    }
    d3d_model_primitive_end(tm);
    return tm;

    أما هذا فهو للتحكم بالأبجكت و اللاعب

  3. #3
    التسجيل
    18-05-2008
    الدولة
    تحت سقف الإدارة الجديدة الفاشلة
    المشاركات
    287

    رد: [درس]عمل لعبة 3Dعلى الجيم ميكر

    ج-الاسم: build_models


    النص:


    global.tracer = d3d_model_create();
    d3d_model_wall(global.tracer,-20,0,.5,20,0,-.5,1,1);
    d3d_model_wall(global.tracer,-20,.5,0,20,-.5,0,1,1);

    //create the tree model
    global.tree1 = createFromObj("models/tree1.obj");
    global.tree2 = createFromObj("models/tree2.obj");
    global.treetex1 = background_get_texture(bg_wood);
    global.treetex2 = background_get_texture(bg_tree);


    كي يحدث إصتدام مع الجسم المستظم



    د-الاسم: scr_find_z


    النص:

    var grid,temp_x,temp_y,temp_z,temp_gridx,temp_gridy,temp_offsetx,temp_offsety,temp_z1,temp_z2,temp_z3,te mp_z4;
    temp_x = argument0;
    temp_y = argument1;
    grid = 50;

    //determine which grid the instance is in
    temp_gridx=floor(temp_x/grid)
    temp_gridy=floor(temp_y/grid)

    //determine where in the grid the instance is
    temp_offsetx= temp_x-grid*temp_gridx
    temp_offsety= temp_y-grid*temp_gridy

    temp_z1=ds_grid_get(global.termap,temp_gridx,temp_gridy)
    temp_z2=ds_grid_get(global.termap,(temp_gridx+1),temp_gridy)
    temp_z3=ds_grid_get(global.termap,(temp_gridx+1),(temp_gridy+1))
    temp_z4=ds_grid_get(global.termap,temp_gridx,(temp_gridy+1))

    if temp_offsetx>temp_offsety {
    temp_z = temp_z1-temp_offsetx*(temp_z1-temp_z2)/grid-temp_offsety*(temp_z2-temp_z3)/grid;} else {
    temp_z = temp_z1-temp_offsetx*(temp_z4-temp_z3)/grid-temp_offsety*(temp_z1-temp_z4)/grid;}

    return temp_z;


    مهم لجعل اللاعب يلمس الأرض



    س-الاسم: svplay


    النص:


    sound_volume(argument0,argument1);
    sound_play(argument0);



    يعمل عل خلق مشهد حقيقي للعبة بدمج الصوت و الحركة



    ص-الاسم: svrand


    النص:


    var temp_snd,rand;
    temp_snd = ds_list_create();
    if (argument1){ds_list_add(temp_snd,argument1);}
    if (argument2){ds_list_add(temp_snd,argument2);}
    if (argument3){ds_list_add(temp_snd,argument3);}
    if (argument4){ds_list_add(temp_snd,argument4);}
    if (argument5){ds_list_add(temp_snd,argument5);}
    rand = floor(random(ds_list_size(temp_snd)));
    sound_volume(ds_list_find_value(temp_snd,rand),argument0);
    sound_play(ds_list_find_value(temp_snd,rand));
    ds_list_destroy(temp_snd);


    مهم جدا لعمل أرضية اللعبة



    و-الاسم: build_sky


    النص:



    sky_up_ID0 = d3d_model_create();

    d3d_model_primitive_begin(sky_up_ID0,pr_trianglestrip);
    d3d_model_vertex_texture(sky_up_ID0,-1000, 1000, 1000,0,0);
    d3d_model_vertex_texture(sky_up_ID0, 1000, 1000, 1000,1,0);
    d3d_model_vertex_texture(sky_up_ID0,-1000,-1000, 1000,0,1);
    d3d_model_vertex_texture(sky_up_ID0, 1000,-1000, 1000,1,1);
    d3d_model_primitive_end(sky_up_ID0);

    sky_down_ID0 = d3d_model_create();

    d3d_model_primitive_begin(sky_down_ID0,pr_trianglestrip);
    d3d_model_vertex_texture(sky_down_ID0,-1000,-1000,-1000,0,0);
    d3d_model_vertex_texture(sky_down_ID0, 1000,-1000,-1000,1,0);
    d3d_model_vertex_texture(sky_down_ID0,-1000, 1000,-1000,0,1);
    d3d_model_vertex_texture(sky_down_ID0, 1000, 1000,-1000,1,1);
    d3d_model_primitive_end(sky_down_ID0);

    sky_east_ID0 = d3d_model_create();

    d3d_model_primitive_begin(sky_east_ID0,pr_trianglestrip);
    d3d_model_vertex_texture(sky_east_ID0, 1000,-1000, 1000,0,0);
    d3d_model_vertex_texture(sky_east_ID0, 1000, 1000, 1000,1,0);
    d3d_model_vertex_texture(sky_east_ID0, 1000,-1000,-1000,0,1);
    d3d_model_vertex_texture(sky_east_ID0, 1000, 1000,-1000,1,1);
    d3d_model_primitive_end(sky_east_ID0);

    sky_west_ID0 = d3d_model_create();

    d3d_model_primitive_begin(sky_west_ID0,pr_trianglestrip);
    d3d_model_vertex_texture(sky_west_ID0,-1000, 1000, 1000,0,0);
    d3d_model_vertex_texture(sky_west_ID0,-1000,-1000, 1000,1,0);
    d3d_model_vertex_texture(sky_west_ID0,-1000, 1000,-1000,0,1);
    d3d_model_vertex_texture(sky_west_ID0,-1000,-1000,-1000,1,1);
    d3d_model_primitive_end(sky_west_ID0);

    sky_north_ID0 = d3d_model_create();

    d3d_model_primitive_begin(sky_north_ID0,pr_trianglestrip);
    d3d_model_vertex_texture(sky_north_ID0,-1000,-1000, 1000,0,0);
    d3d_model_vertex_texture(sky_north_ID0, 1000,-1000, 1000,1,0);
    d3d_model_vertex_texture(sky_north_ID0,-1000,-1000,-1000,0,1);
    d3d_model_vertex_texture(sky_north_ID0, 1000,-1000,-1000,1,1);
    d3d_model_primitive_end(sky_north_ID0);

    sky_south_ID0 = d3d_model_create();

    d3d_model_primitive_begin(sky_south_ID0,pr_trianglestrip);
    d3d_model_vertex_texture(sky_south_ID0, 1000,1000, 1000,0,0);
    d3d_model_vertex_texture(sky_south_ID0,-1000,1000, 1000,1,0);
    d3d_model_vertex_texture(sky_south_ID0, 1000,1000,-1000,0,1);
    d3d_model_vertex_texture(sky_south_ID0,-1000,1000,-1000,1,1);
    d3d_model_primitive_end(sky_south_ID0);


    يتحكم بالسماء أي عندما تنحني يمينا أو شمالا تضهر لك السماء على شكل متناسب و متسلسل



    4-نضع الأبجكت


    وهذا في الملف المرفق



    5-ثم ننشىء الروم


    بأي شكل بشرط أن تكون الأبجكت جميعها في الروم


    لكي تتناسق الصور و الؤرسمات وحركة اللاعب



    وليس هذا فقط هناك مثال على ذلك






    أو



    الملف المرفق



    يجب ن يكون لك برنامج لصنع أجسام الثلاثي الأبعاد (لصنع لعبة)


    مثل



    Cenima 4D


    3D Max


    Maya



    لصنع الأشجار و السطوح كما في المثال الذي أرفقت معه بعض الأجسام



    وعفوا على الطول هذا


    أرجو أن يكون الدرس مفهوما


    ملاحظة هامة جداً:-
    سيعمل المثال مع البرنامج المرفق بكرارك


    التعديل الأخير تم بواسطة AMB0 ; 24-06-2008 الساعة 05:18 PM

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

    رد: [درس]عمل لعبة 3Dعلى الجيم ميكر

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





    سبحان الله وبحمده...سبحان الله العظيم
    اذا اردت أن تجدني اضغط هنا
    هذا أول موضوع لي بقسم صناعة الألعاب

  5. #5
    التسجيل
    07-06-2007
    الدولة
    العالم الافتراضي
    المشاركات
    188

    رد: [درس]عمل لعبة 3Dعلى الجيم ميكر

    مشكور اخوي ولك جزيل الشكر دروس متعوبة صراحه أستمر........

    <<<>>>
    كتاب لغة سي سكريت c-script باللغة العربية

    الجزء الأول هنا

    <<<>>>



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

    رد: [درس]عمل لعبة 3Dعلى الجيم ميكر

    ممتاز عاشت ايديك اخوي ولو الشرح مختصر جدا جدا لكن ايضا مفيد

  7. #7
    التسجيل
    23-05-2008
    الدولة
    اليمن
    المشاركات
    81

    رد: [درس]عمل لعبة 3Dعلى الجيم ميكر

    مشكور أخي على هذا الدرس
    من زمان وانا ابحث عنة

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

    رد: [درس]عمل لعبة 3Dعلى الجيم ميكر

    شكرا على المرور

    وهذا الدرس ينفي كلام كل من يقول أن الجيم ميكر غير قادر على صنع ألعاب الثري دي
    والمثال دليل على ذلك

    تحميل المثال

  9. #9
    التسجيل
    15-03-2008
    المشاركات
    31

    رد: [درس]عمل لعبة 3Dعلى الجيم ميكر

    مشكووور والشرح روعة
    ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــ

    لعبة المتسلل

    http://www.montada.com/showthread.php?t=595421

    ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــ

  10. #10
    التسجيل
    24-08-2011
    المشاركات
    1

    رد: [درس]عمل لعبة 3Dعلى الجيم ميكر

    تسلم يا غالى, انا عمرى مهلائى شرح احسن من كدة والمثال شغال 100%100 شكراً بجد على المجهود الرائع وكنت بطلب يريت تحتلنا شرح لصنع الأشكال ال3d وربنا يديك كمان وكمان

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

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