Hallo

Wie ist es möglich ein Shape mitdrehn zulassen ,welches wiederrum ein Zahnrad ist ?

Code:
//////////////

action spin_kreuz1()
{	
	ENTITY* gear8 = ent_create("add_shape2.mdl",vector(120,0,0),NULL);
	set(gear8, VISIBLE);
	
	c_setminmax(me);
	
	pXent_settype(me,PH_RIGID,PH_SPHERE);
	
	var i;
	for (i=10; i<360; i+=72) {
		gear8.pan = i;
		pXent_addshape(me, gear8, PH_BOX);
	}

	pXent_removeshape(my, 0);
	//
	
	var Motion[6] = { 0,0,0,0,0,NX_D6JOINT_MOTION_FREE};

	pXcon_add(PH_6DJOINT,me,NULL,0);

	pXcon_set6djoint(me,Motion,NULL);
}

//////////////

action spin_kreuz2()
{	
	ENTITY* gear8 = ent_create("add_shape2.mdl",vector(-120,0,0),NULL);
	set(gear8, VISIBLE);
	
	c_setminmax(me);
	
	pXent_settype(me,PH_RIGID,PH_SPHERE);
	
	var i;
	for (i=10; i<360; i+=72) {
		gear8.pan = i;
		pXent_addshape(me, gear8, PH_BOX);
	}

	pXent_removeshape(my, 0);
	//
	
	var Motion[6] = { 0,0,0,0,0,NX_D6JOINT_MOTION_FREE};

	pXcon_add(PH_6DJOINT,me,NULL,0);

	pXcon_set6djoint(me,Motion,NULL);
}

//////////////

action spin_kreuz3()
{	
	ENTITY* gear8 = ent_create("add_shape2.mdl",vector(0,120,0),NULL);
	set(gear8, VISIBLE);
	
	c_setminmax(me);
	
	pXent_settype(me,PH_RIGID,PH_SPHERE);
	
	var i;
	for (i=10; i<360; i+=72) {
		gear8.pan = i;
		pXent_addshape(me, gear8, PH_BOX);
	}

	pXent_removeshape(my, 0);
	//
	
	var Motion[6] = { 0,0,0,0,0,NX_D6JOINT_MOTION_FREE};

	pXcon_add(PH_6DJOINT,me,NULL,0);

	pXcon_set6djoint(me,Motion,NULL);
}

//////////////

action spin_kreuz4()
{	
	ENTITY* gear8 = ent_create("add_shape2.mdl",vector(0,-120,0),NULL);
	set(gear8, VISIBLE);
	
	c_setminmax(me);
	
	pXent_settype(me,PH_RIGID,PH_SPHERE);
	
	var i;
	for (i=10; i<360; i+=72) {
		gear8.pan = i;
		pXent_addshape(me, gear8, PH_BOX);
	}

	pXent_removeshape(my, 0);
	//
	
	var Motion[6] = { 0,0,0,0,0,NX_D6JOINT_MOTION_FREE};

	pXcon_add(PH_6DJOINT,me,NULL,0);

	pXcon_set6djoint(me,Motion,NULL);
}


action test_block()
{
  pXent_settype(me,PH_RIGID,PH_CONVEX);
	
  ENTITY* kreuz1 = ent_create ("kreuz.mdl",  vector(120,0,0), spin_kreuz1);
  ENTITY* kreuz2 = ent_create ("kreuz.mdl",  vector(-120,0,0), spin_kreuz2);
  ENTITY* kreuz3 = ent_create ("kreuz.mdl",  vector(0,120,0), spin_kreuz3);
  ENTITY* kreuz4 = ent_create ("kreuz.mdl",  vector(0,-120,0), spin_kreuz4);
 
  c_setminmax(me);
  
  pXent_setbodyflag(me,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
	
	
	// Steuerung Schleife
	ANGLE angle;
	
	while(1) 
	{
		if (key_j) 
		{
			angle.pan += -8* time_step;  	 
			pXent_rotate(me, nullvector, vector(angle.pan,0,0));	
		}
		
		
		if (key_k) 
		{
			angle.pan += 8* time_step;  	 
			pXent_rotate(me, nullvector, vector(angle.pan,0,0));	
		}
		
		wait(1);
	}



-> mit k und j drehe ich zwar das object aber nicht die
shapes


-> wie drehe ich das GANZE jetz sammt shape+shape_action?



Last edited by ratz; 05/16/15 19:55.