Una mia DLL per la creazione di videogame in 3D (del tipo u3d,xtreme3d,ogre3d..) con una peculiarità:
le sue funzioni sono le stesse del d3d di game maker a cui vengono aggiunte di più potenti.
(utilizzo di geometria statica per la velocità normale nel disegno dei poligoni, mipmap, utilizzo shader, possibilità di caricare modelli da diversi formati, skinning e tutte le altre tecniche 3d che avreste voluto poter utilizzare in gm).
In questo modo non avete bisogno di studiarvi da 0 un nuovo sistema se già conoscevate il d3d di gm.
http://www.2shared.com/file/ZAJm8n8E/SlaD3D.html (274 KB)
Attenzione: se non avete installato vc++ vi servirà il redistributable:
http://www.microsoft.com/download/en/co ... px?id=5555 (4.8 MB)
Provatela e vedete se funziona. SlaD3D.zip contiene un gmk, la DLL e il file .gml con gli script.
Se avete un gm precedente all'8 create un nuovo progetto, importate gli scripts, create un object.
Evento create:
Codice: Seleziona tutto
sd3d_init();
sd3d_start();
bricks = sd3d_texture_load("mattoni.jpg");
sd3d_set_mipmap(true);
mipmap = true;
//Creo una piramide a 4 facce
piramide = sd3d_model_create();
sd3d_model_primitive_begin(piramide,pr_trianglelist);
sd3d_model_vertex_texture(piramide,-100,-100,0,0,0);
sd3d_model_vertex_texture(piramide,100,-100,0,1,0);
sd3d_model_vertex_texture(piramide,0,0,100,.5,1);
sd3d_model_vertex_texture(piramide,-100,-100,0,0,0);
sd3d_model_vertex_texture(piramide,-100,100,0,1,0);
sd3d_model_vertex_texture(piramide,0,0,100,.5,1);
sd3d_model_vertex_texture(piramide,-100,100,0,0,0);
sd3d_model_vertex_texture(piramide,100,100,0,1,0);
sd3d_model_vertex_texture(piramide,0,0,100,.5,1);
sd3d_model_vertex_texture(piramide,100,100,0,0,0);
sd3d_model_vertex_texture(piramide,100,-100,0,1,0);
sd3d_model_vertex_texture(piramide,0,0,100,.5,1);
sd3d_model_primitive_end(piramide);
Codice: Seleziona tutto
sd3d_set_projection(mouse_x,mouse_y,300,0,0,0,0,0,1);
if(keyboard_check_pressed(ord("M")))
{
sd3d_set_mipmap(!mipmap);
mipmap = !mipmap;
}
if(sd3d_render_begin())
{
sd3d_draw_block(-300,-100,0,-100,100,200,bricks,1,1);
sd3d_model_draw(piramide,0,0,80,bricks);
sd3d_render_end();
}
Codice: Seleziona tutto
sd3d_end();
Il progetto deve ancora svilupparsi:
non ho ancora creato tutte le funzioni d3d di gm, anche se ne ho già aggiunte di carine (come d3d_set_mipmap, per testarla premete M nell'esempio)