Hallo Leute,
Ich hab ne Frage zu den Physik Gruppen. Ich möchte bei bestimmten Gruppen die Physik deaktivieren. Andere Gruppen dürfen dabei nicht deaktiviert werden und irgendwie bring ich das nicht hin. Wie mach ich das z.B Gruppe 2, 4, 8, 16 deaktiviert werden aber Gruppe 32, 64 und 128 trotzdem weiterlaufen?
Ich möchte eine Art Domino-Effekt mit der Physik-Engine basteln. Dabei teile ich die Steine in Gruppen auf um diese nach dem Umfallen deaktivieren zu können. Dies brauche ich um die Performance nicht ins Bodenlose sinken zulassen.

Hier mal mein Murks:

Code:

function physik_stop_1()
{

if(stein_dis_1.roll < -70)
{
wait(1);
ph_selectgroup(2+4+8+16); es werden immer alle gruppen deaktiviert egal was ich schreibe :confused:
}

if(stein_dis_1.roll > 70)
{
wait(1);
ph_selectgroup(2+4+8+16);

}

}


function physik_stop_2()
{
if(stein_dis_2.roll < -70)
{
wait(1);
ph_selectgroup(32+64+128);
}

if(stein_dis_2.roll > 70)
{
wait(1);
ph_selectgroup(32+64+128);
}
}


action first_stone()
{
erster_stein = my;
erster_stein.pan = 3rd_person.pan - 90;

ph_setgravity(gravity);

phent_settype(erster_stein, ph_rigid, ph_box)

phent_setmass(erster_stein, 20, ph_box);
phent_setdamping(erster_stein,30, 30);
phent_setfriction(erster_stein, 100);
phent_setmaxspeed(erster_stein, 275, 100);
phent_setelasticity(erster_stein, 0, 0);
phent_setgroup(erster_stein, 2);


start_game();

}

action steine_grp_2()
{
stein_grp2 = my;
stein_grp2.pan = 3rd_person.pan - 90;

ph_setgravity(gravity);

phent_settype(stein_grp2, ph_rigid, ph_box);

phent_setmass(stein_grp2, 20, ph_box);
phent_setdamping(stein_grp2,30, 30);
phent_setfriction(stein_grp2, 100);
phent_setmaxspeed(stein_grp2, 275, 100);
phent_setelasticity(stein_grp2, 0, 0);
phent_setgroup(stein_grp2, 4);



start_game();

}

action steine_grp_3()
{
stein_grp3 = my;
stein_grp3.pan = 3rd_person.pan - 90;

ph_setgravity(gravity);

phent_settype(stein_grp3, ph_rigid, ph_box);
phent_setmass(stein_grp3, 20, ph_box);
phent_setdamping(stein_grp3,30, 30);
phent_setfriction(stein_grp3, 100);
phent_setmaxspeed(stein_grp3, 275, 100);
phent_setelasticity(stein_grp3, 0, 0);
phent_setgroup(stein_grp3, 8);



start_game();

}

action steine_disable_1()
{
stein_dis_1 = my;
stein_dis_1.pan = 3rd_person.pan - 90;

ph_setgravity(gravity);

phent_settype(stein_dis_1, ph_rigid, ph_box);/
phent_setmass(stein_dis_1, 20, ph_box);
phent_setdamping(stein_dis_1,30, 30);
phent_setfriction(stein_dis_1, 100);
phent_setmaxspeed(stein_dis_1, 275, 100);
phent_setelasticity(stein_dis_1, 0, 0);
phent_setgroup(stein_dis_1, 16);




stein_dis_1.ENABLE_impact = ON;
stein_dis_1.EVENT = physik_stop_1;

start_game();

}



action steine_grp_4()
{
stein_grp4 = my;
stein_grp4.pan = 3rd_person.pan - 90;

ph_setgravity(gravity);

phent_settype(stein_grp4, ph_rigid, ph_box);

phent_setmass(stein_grp4, 20, ph_box);
phent_setdamping(stein_grp4,30, 30);
phent_setfriction(stein_grp4, 100);
phent_setmaxspeed(stein_grp4, 275, 100);
phent_setelasticity(stein_grp4, 0, 0);
phent_setgroup(stein_grp4, 32);


start_game();

}

action steine_grp_5()
{
stein_grp5 = my;
stein_grp5.pan = 3rd_person.pan - 90;

ph_setgravity(gravity);

phent_settype(stein_grp5, ph_rigid, ph_box);
phent_setmass(stein_grp5, 20, ph_box)
phent_setdamping(stein_grp5,30, 30);
phent_setfriction(stein_grp5, 100);
phent_setmaxspeed(stein_grp5, 275, 100);
phent_setelasticity(stein_grp5, 0, 0);
phent_setgroup(stein_grp5, 64);


start_game();

}



action steine_disable_2()
{
stein_dis_2 = my;
stein_dis_2.pan = 3rd_person.pan - 90;

ph_setgravity(gravity);

phent_settype(stein_dis_2, ph_rigid, ph_box);
phent_setmass(stein_dis_2, 20, ph_box);
phent_setdamping(stein_dis_2,30, 30);
phent_setfriction(stein_dis_2, 100);
phent_setmaxspeed(stein_dis_2, 275, 100);
phent_setelasticity(stein_dis_2, 0, 0);
phent_setgroup(stein_dis_2, 128);


stein_dis_2.ENABLE_impact = ON;
stein_dis_2.EVENT = physik_stop_2;

start_game();

}



Ich steuere die deaktivierung via event_impact. Sobald der betroffene Stein einen .roll wert überschreitet soll die dahinterliegende Gruppe deaktiviert werden. Ich hab schon so ziemlich alles probiert und komm nicht weiter. Auch das manual sagt mir zu dem Thema nicht viel. Egal was ich mache, wenn der event ausgelöst wird, werden alle Gruppen deaktiviert. Muss doch möglich sein nur bestimmte Gruppen zu deaktivieren

Kann mir jemand sagen was ich falsch mache?

Die steine werden via ent_create erstellt, ich benutze pro erstellten stein. abwechselnd eine andere aktion mit einer anderen Gruppenzuteilung um das Problem mit der Kollision zu umgehen (physik-objekte der gleichen Gruppe haben untereinander keine Kollisionserkennung). Kann dies einen Einfluss haben? Weil mehrere Steine mit der selben Aktion erstellt werden?

cheers

Zwecklos

PS Falls was unklar ist, ungeniert fragen