Hallo
mein Kollege hat mich gestern auf seiner X-box 360
das Spiel "Minecraft" zocken lassen ...
ich war begeistert von der umsetzung und habe immer gedacht, dass es ein ganz einfaches Kinderspiel were
__________________________
nun möchte ich diese Technick gerne ins 3D gamestudio
umsetzen , nach langen googlen bin ich auf folgede große
Namen gestoßen:
CUBE_X und VOXEL
nach weiterem googlen hab ich das jetzt so verstanden:
ein Voxel ist ein Pixel mit Volumen welches in die
3te dimension positioniert und gezeichnet wird..
beim CubeX handelt es sich anscheind um ein Sammel-begrif
und ist ein bereits umgesetztes projeckt fürs 3d-GS
über edliche links bin ich dann auf ein Download gestoßen
und habe mir das project mal angeuckt ...
im verzeichnis "Code/cubeX.c" habe ich dann folgendes gefunden:
BLOCK* block_create(VECTOR* pos, BLOCK_MATERIAL* material)
{
...
// GANZ VIEL CODE !!!!
...
}
und dann plötzlich:
weiter unten die zusammensetzung:
function block_createTop(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
if(block->top)
return;
block->top = ent_create(material->top,vector(pos->x,pos->y,pos->z + BLOCK_SIZE_HALF),NULL);
set(block->top,DECAL | NOFILTER);
reset(block->top,DYNAMIC);
block->top->tilt = 90;
block->top->skill[0] = block;
}
function block_createBottom(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
if(block->bottom)
return;
block->bottom = ent_create(material->bottom,vector(pos->x,pos->y,pos->z - BLOCK_SIZE_HALF),NULL);
set(block->bottom,DECAL | NOFILTER);
reset(block->bottom,DYNAMIC);
block->bottom->tilt = -90;
block->bottom->skill[0] = block;
}
function block_createRight(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
if(block->right)
return;
block->right = ent_create(material->right,vector(pos->x,pos->y - BLOCK_SIZE_HALF,pos->z),NULL);
set(block->right,DECAL | NOFILTER);
reset(block->right,DYNAMIC);
block->right->pan = -90;
block->right->skill[0] = block;
}
function block_createLeft(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
if(block->left)
return;
block->left = ent_create(material->left,vector(pos->x,pos->y + BLOCK_SIZE_HALF,pos->z),NULL);
set(block->left,DECAL | NOFILTER);
reset(block->left,DYNAMIC);
block->left->pan = 90;
block->left->skill[0] = block;
}
function block_createFront(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
if(block->front)
return;
block->front = ent_create(material->front,vector(pos->x + BLOCK_SIZE_HALF,pos->y,pos->z),NULL);
set(block->front,DECAL | NOFILTER);
reset(block->front,DYNAMIC);
block->front->skill[0] = block;
}
function block_createBack(BLOCK* block,BLOCK_MATERIAL* material,VECTOR* pos)
{
if(block->back)
return;
block->back = ent_create(material->back,vector(pos->x - BLOCK_SIZE_HALF,pos->y,pos->z),NULL);
set(block->back,DECAL | NOFILTER);
reset(block->back,DYNAMIC);
block->back->pan = 180;
block->back->skill[0] = block;
}
usw ... usw ... usw...
FRAGE:
wie bekomme ich das ganze denn jetzt in die 3te
Dimension ????????
immer wieder erscheint der befehl:
- ent_create lässt aber eigendlich nur 1000 entits zu
(ich benutze die A8 Gratis version)
ich möchte gerne wissen wie man das ganze
ohne den ganzen material-kram verwirklicht
so das einfach nur weisse blöcke zu sehn sind ...
Warum das ganze ???
-> erstelle ich 3 Cubes (.mdl) die nebeneinander
liegen hat jeder Cube schatten , licht ect.
Sprich: Man sieht einfach das, das erstellte
object aus 3 cubes gemacht worden ist
hier:
sind also in 3d-gs erstelle voxels auch nur Entitys ??
ich will das wissen weil ich da was bestimmtes vor habe
...