0 registered members (),
1,103
guests, and 1
spider. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Voxel fürs 3d Gamestudio
[Re: the_clown]
#429205
09/10/13 10:35
09/10/13 10:35
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
@^: 3d arrays gehen auf jeden fall (es sollten auch nochmehr gehen) edit2: wenn man's genau nimmt ist mein code im prinzip ein 4d array ;P@ratz: wenn du das unbedingt mit sprites machen willst dann nehm einfach einen struct. edit: eigentlich ist es - egal mit welcher methode - am besten einen struct zu verwenden in einem 2D oder 3D array. (was man eben braucht)
var voxel_size = 16;
typedef struct VOXEL
{
ENTITY * front; // x-
ENTITY * back; // x+
ENTITY * left; // y+
ENTITY * right; // y-
ENTITY * top; // z+
ENTITY * bottom; // z-
} VOXEL;
VOXEL * VoxelStructure[16][16]; // 2D array
[...]
int x, y;
for(x = 0; x < 16; x++)
{
for(y = 0; y < 16; y++)
{
VoxelStructure[x][y].front = ent_create( ... , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].front.xxx = ; // winkel setzen
VoxelStructure[x][y].back = ent_create( ... , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].back.xxx = ; // winkel setzen
VoxelStructure[x][y].left = ent_create( ... , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].left.xxx = ; // winkel setzen
VoxelStructure[x][y].right = ent_create( ... , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].right.xxx = ; // winkel setzen
VoxelStructure[x][y].top = ent_create( ... , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].top.xxx = ; // winkel setzen
VoxelStructure[x][y].bottom = ent_create( ... , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].bottom.xxx = ; // winkel setzen
}
}
offsets und winkel sind nicht im code
Last edited by Kartoffel; 09/10/13 10:44.
POTATO-MAN saves the day! - Random
|
|
|
Re: Voxel fürs 3d Gamestudio
[Re: the_clown]
#429206
09/10/13 10:37
09/10/13 10:37
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
so ich hab den post hier gelöscht und jetzt den voxel bearbeitet -> danke erstmal für den schnippsel
var voxel_size = 16;
typedef struct VOXEL
{
ENTITY * front; // x-
ENTITY * back; // x+
ENTITY * left; // y+
ENTITY * right; // y-
ENTITY * top; // z+
ENTITY * bottom; // z-
} VOXEL;
VOXEL * VoxelStructure[16][16]; // 2D array
{
int x, y;
for(x = 0; x < 16; x++)
{
for(y = 0; y < 16; y++)
{
VoxelStructure[x][y].front = ent_create("test1.bmp" , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].front.pan = 180;// winkel setzen
VoxelStructure[x][y].back = ent_create("test1.bmp" , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].back.pan = -180; // winkel setzen
VoxelStructure[x][y].left = ent_create( "test1.bmp" , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].left.pan = 90; // winkel setzen
VoxelStructure[x][y].right = ent_create( "test1.bmp", vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].right.pan = -90; // winkel setzen
VoxelStructure[x][y].top = ent_create( "test1.bmp", vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].top.tilt = 90; // winkel setzen
//VoxelStructure[x][y].bottom = ent_create( "test1.bmp" , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
//VoxelStructure[x][y].bottom.xxx = ; // winkel setzen
}
}
}
////////////////////////////////////////////////
wie starte ich den voxel in der main ? ist seit dem letzen post von Kartoffel totals neuland für mich
Last edited by ratz; 09/10/13 10:56.
|
|
|
Re: Voxel fürs 3d Gamestudio
[Re: ratz]
#429208
09/10/13 10:40
09/10/13 10:40
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
hehe, ja das war fast gleichzeitig.
wenn du noch mehr codebeispiele brauchst, sags bitte.
POTATO-MAN saves the day! - Random
|
|
|
Re: Voxel fürs 3d Gamestudio
[Re: ratz]
#429209
09/10/13 10:53
09/10/13 10:53
|
Joined: Nov 2008
Posts: 946
the_clown
User
|
User
Joined: Nov 2008
Posts: 946
|
ich wollte dir eigentlich auch ein stück code schreiben aber meine linke hand ist momentan leider tippunfähig deswegen sind sonderzeichen etwas mühsam ich würde dir trotzdem empfehlen dir mal ein bisschen was im handbuch durchzulesen zu den genannten themen, und auch darüber hinaus, denn wenn man sich hauptsächlich an codebeispielen orientiert die genau das machen was man gerade braucht, ohne weiteres wissen dahinter über die verwendeten methoden und so weiter, dann kommt man beim nächsten ähnlichen problem wieder nicht weiter bis jemand mit spezifischem code aushilft. je mehr du über lite-c und programmiertechniken generell weißt desto weniger probleme dieser art bekommst du im verlauf. kartoffels code ist übrigens für dein spezielles problem erstmal so ziemlich die optimalste lösung. ich würd den aber nicht abtippen sondern wie gesagt so lang versuchen ihn zu verstehen bis du aus dem kopf genau das gleiche selbst schreiben kannst und dabei auch erklären könntest, was passiert. wie gesagt, knowledge is power, VOR ALLEM beim programmieren
Last edited by the_clown; 09/10/13 10:57.
|
|
|
Re: Voxel fürs 3d Gamestudio
[Re: the_clown]
#429215
09/10/13 10:58
09/10/13 10:58
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
okey ... ::ich glaube ich versehe:: die typedef struckt gibt die benötigten Entitys an (informartion des Objectes) und die voxel-structure die mit x,y Arrays positioniert wird sagt dem struct was dann zutun ist right ? eins noch: wie starte ich den voxel in der main ? mit set() oder voxel(); oder in einer function ? STRUCTS sind totals neuland für mich hört sich aber recht interssant an
Last edited by ratz; 09/10/13 11:26.
|
|
|
Re: Voxel fürs 3d Gamestudio
[Re: ratz]
#429218
09/10/13 11:17
09/10/13 11:17
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
genau so wie du es mit den entitys gemacht hast
#include <acknex.h>
#include <default.c>
//
var voxel_size = 16;
typedef struct VOXEL
{
ENTITY * front; // x-
ENTITY * back; // x+
ENTITY * left; // y+
ENTITY * right; // y-
ENTITY * top; // z+
ENTITY * bottom; // z-
} VOXEL;
VOXEL * VoxelStructure[16][16]; // 2D array
void create_voxels()
{
int x, y;
for(x = 0; x < 16; x++)
{
for(y = 0; y < 16; y++)
{
VoxelStructure[x][y].front = ent_create("test1.bmp" , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].front.pan = 180;// winkel setzen
VoxelStructure[x][y].back = ent_create("test1.bmp" , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].back.pan = -180; // winkel setzen
VoxelStructure[x][y].left = ent_create( "test1.bmp" , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].left.pan = 90; // winkel setzen
VoxelStructure[x][y].right = ent_create( "test1.bmp", vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].right.pan = -90; // winkel setzen
VoxelStructure[x][y].top = ent_create( "test1.bmp", vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
VoxelStructure[x][y].top.tilt = 90; // winkel setzen
//VoxelStructure[x][y].bottom = ent_create( "test1.bmp" , vector(voxel_size * x, voxel_size * y, 0), NULL); // seite erstellen
//VoxelStructure[x][y].bottom.xxx = ; // winkel setzen
}
}
}
void main()
{
wait(1);
video_set(sys_metrics(0) * 0.75, sys_metrics(1) * 0.75, 0, 2);
fps_max = 60;
max_entities = 2000;
level_load("test.WMB");
wait(1); // warten bis der level geladen ist, kann sonst probleme auf langsamen rechnern / großen leveln geben
create_voxels();
}
////////////////////////////////////////////////
und ich muss the clown zustimmen: das alles ist scheinbar #neuland für dich also ist es sehr wichtig, dass du dich auch mit dem zeug auseinandersetzt und den code verstehsts.
POTATO-MAN saves the day! - Random
|
|
|
Re: Voxel fürs 3d Gamestudio
[Re: ratz]
#429221
09/10/13 11:31
09/10/13 11:31
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
hmm. ich rate mal.
pack... VoxelStructure[x][y] = sys_malloc(sizeof(VOXEL)); ...an den anfang der 'for(y =...' schleife
POTATO-MAN saves the day! - Random
|
|
|
|