ج-الاسم: 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
لصنع الأشجار و السطوح كما في المثال الذي أرفقت معه بعض الأجسام
وعفوا على الطول هذا
أرجو أن يكون الدرس مفهوما
ملاحظة هامة جداً:-
سيعمل المثال مع البرنامج المرفق بكرارك