ANGLE angle;
action my_wheel1()
{
pXent_settype(me,PH_RIGID,PH_CONVEX);
ENTITY* shape1 = ent_create("add_shape2.mdl",vector(120,0,0),NULL); // Simple box für die Zähne
set(shape1, VISIBLE);
c_setminmax(me);
// Insgesamt 5 Zähne werden Gebraucht mit 10° anfangs Winkel
var i;
for (i=10; i<360; i+=72) {
//shape1.x=30;
shape1.pan = i;
pXent_addshape(me, shape1, PH_BOX);
}
pXent_removeshape(me, 0); // entfernt eine zuvor hinzugefügte PH_SPHERE Form
pXent_setbodyflag(me,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
pXent_setbodyflag(shape1,NX_BF_KINEMATIC,1);
// Steuerung Schleife
ANGLE angle;
while(1)
{
angle.pan += -4* time_step;
pXent_rotate(shape1, vector(me.x+120,0,0), vector(angle.pan,0,0));
wait(1);
}
}
action my_wheel2()
{
pXent_settype(me,PH_RIGID,PH_CONVEX);
ENTITY* shape2 = ent_create("add_shape2.mdl",vector(-120,0,0),NULL); // Simple box für die Zähne
set(shape2, VISIBLE);
c_setminmax(me);
// Insgesamt 5 Zähne werden Gebraucht mit 10° anfangs Winkel
var i;
for (i=10; i<360; i+=72) {
//shape1.x=30;
shape2.pan = i;
pXent_addshape(me, shape2, PH_BOX);
}
pXent_removeshape(me, 0); // entfernt eine zuvor hinzugefügte PH_SPHERE Form
pXent_setbodyflag(me,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
pXent_setbodyflag(shape2,NX_BF_KINEMATIC,1);
// Steuerung Schleife
ANGLE angle;
while(1)
{
angle.pan += -4* time_step;
pXent_rotate(shape2, vector(-120,0,0), vector(angle.pan,0,0));
wait(1);
}
}
action my_wheel3()
{
pXent_settype(me,PH_RIGID,PH_CONVEX);
ENTITY* shape3 = ent_create("add_shape2.mdl",vector(0,120,0),NULL); // Simple box für die Zähne
set(shape3, VISIBLE);
c_setminmax(me);
// Insgesamt 5 Zähne werden Gebraucht mit 10° anfangs Winkel
var i;
for (i=10; i<360; i+=72) {
//shape1.x=30;
shape3.pan = i;
pXent_addshape(me, shape3, PH_BOX);
}
pXent_removeshape(me, 0); // entfernt eine zuvor hinzugefügte PH_SPHERE Form
pXent_setbodyflag(me,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
pXent_setbodyflag(shape3,NX_BF_KINEMATIC,1);
// Steuerung Schleife
ANGLE angle;
while(1)
{
angle.pan += -4* time_step;
pXent_rotate(shape3, vector(0,120,0), vector(angle.pan,0,0));
wait(1);
}
}
action my_wheel4()
{
pXent_settype(me,PH_RIGID,PH_CONVEX);
ENTITY* shape4 = ent_create("add_shape2.mdl",vector(0,-120,0),NULL); // Simple box für die Zähne
set(shape4, VISIBLE);
c_setminmax(me);
// Insgesamt 5 Zähne werden Gebraucht mit 10° anfangs Winkel
var i;
for (i=10; i<360; i+=72) {
//shape1.x=30;
shape4.pan = i;
pXent_addshape(me, shape4, PH_BOX);
}
pXent_removeshape(me, 0); // entfernt eine zuvor hinzugefügte PH_SPHERE Form
pXent_setbodyflag(me,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
pXent_setbodyflag(shape4,NX_BF_KINEMATIC,1);
// Steuerung Schleife
ANGLE angle;
while(1)
{
angle.pan += -4* time_step;
pXent_rotate(shape4, vector(0,-120,0), vector(angle.pan,0,0));
wait(1);
}
}
action test_block()
{
pXent_settype(me,PH_RIGID,PH_CONVEX);
ENTITY* mechanik1 = ent_create ("block.mdl", vector(0,0,0), my_wheel1);
ENTITY* mechanik2 = ent_create ("block.mdl", vector(0,0,0), my_wheel2);
ENTITY* mechanik3 = ent_create ("block.mdl", vector(0,0,0), my_wheel3);
ENTITY* mechanik4 = ent_create ("block.mdl", vector(0,0,0), my_wheel4);
c_setminmax(me);
pXent_setbodyflag(me,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
pXent_setbodyflag(mechanik1,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
pXent_setbodyflag(mechanik2,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
pXent_setbodyflag(mechanik3,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
pXent_setbodyflag(mechanik4,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
// pXent_setbodyflag(mechanik5,NX_BF_KINEMATIC,1); // aktiviert kinematische Steuerung
// Steuerung Schleife
while(1)
{
angle.pan += -3* time_step;
pXent_rotate(mechanik1, nullvector, vector(angle.pan,0,0));
pXent_rotate(mechanik2, nullvector, vector(angle.pan,0,0));
pXent_rotate(mechanik3, nullvector, vector(angle.pan,0,0));
pXent_rotate(mechanik4, nullvector, vector(angle.pan,0,0));
wait(1);
}
}