Gamestudio Links
Zorro Links
Newest Posts
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
0 registered members (), 1,103 guests, and 1 spider.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 3 of 6 1 2 3 4 5 6
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 Offline
Expert
Kartoffel  Offline
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)

Code:
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
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
so ich hab den post hier gelöscht und jetzt den voxel bearbeitet -> danke erstmal für den schnippsel

Code:
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 tongue

Last edited by ratz; 09/10/13 10:56.
Re: Voxel fürs 3d Gamestudio [Re: ratz] #429207
09/10/13 10:38
09/10/13 10:38
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
mom ............ der post von KArtoffel kam gerade als ich fertig war mit mein post


bitte nicht überreagieren grin

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 Offline
Expert
Kartoffel  Offline
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
T
the_clown Offline
User
the_clown  Offline
User
T

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 tongue
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 wink

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
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

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 wink




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 Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
genau so wie du es mit den entitys gemacht hast

Code:
#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: Kartoffel] #429219
09/10/13 11:27
09/10/13 11:27
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
ahhh schonwieder gleichzeitiger post grin

Re: Voxel fürs 3d Gamestudio [Re: ratz] #429220
09/10/13 11:29
09/10/13 11:29
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
wenn ich es starten will kommt: script-crash in create_voxel()

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 Offline
Expert
Kartoffel  Offline
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
Page 3 of 6 1 2 3 4 5 6

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1