PhysX Objekt wird nicht aus registrierung gelöscht.

Posted By: Meerkat

PhysX Objekt wird nicht aus registrierung gelöscht. - 07/04/11 19:06

Wie der Titel schon sagt wird bei mir eins von 2 Objekten (der Ball vom Spieler) vorm Mapchange nicht aus der Registrierung gelöscht. Ich verstehe nicht wieso, da mein Code meines erachtens nach richtig ist. Beim Exit funktioniert das einwandfrei. Dadurch das es nicht aus der Registrierung wird ruckelt der Ball ab der 2. Map. Hat irgendjemand Hinweise für mich? laugh

Code:
Physikents = pXent_settype(ball, 0, 0); //Model als Ball registrieren
Physikents = pXent_settype(Ziel_ent, 0, 0); //Model als Ball registrieren
wait(-1);
Mapchange += 1;
Auswertung_var = 0;
if(Mapchange == integer(1))
{
	level_load (map_1);
Cameramode = 1;
}



MfG

Rudi
Posted By: Joey

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/04/11 19:14

Benutz mal nur das physX_open, das sollte die Sache automatisieren.
btw. schrecklicher Programmierstil, ich hoff der Rest des Codes sieht nicht so aus ^^
Posted By: Meerkat

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/04/11 19:25

Das PhysX_Open hab ich in der Main Function stehen. Muss das etwa in den Spielerscript oder wie?

Was isn daran schrecklich? Also ich komm damit gut klar. ^^


Edit:

Alaska. Ich habs geschafft das der Ball gelöscht wird. Die Zappelei ab dem 2. level is aber immer noch net verschwunden. Ich verstehs nicht worans liegen kann.
Posted By: Meerkat

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/11/11 19:47

Sorry für den Doppelpost, ich kann meinen Beitrag leider nicht mehr "edit"(en). Hat jemand mittlerweile heraus gefunden ob das ein Bug (das der Ball ab dem Mapchange zappelt) von dem recht neuen PhysX ist?


Rudi
Posted By: Superku

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/12/11 01:00

Woher weißt du, dass der Ball "nicht aus der Registrierung gelöscht wird"?
Was passiert, wenn du immer das gleiche Level lädst?
Posted By: Meerkat

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/12/11 15:54

Weil ich mir die registrierten Entitys (ich habe nur 2 im level) per "pXent_settype(ENTITY* entity, var type, var hull )" anzeigen lasse. Es wird darüber ja ein Wert ausgegeben wenn man dies mit einer Variable nutzt.

"Rückgabewerte:
Bei Erfolg, gegenwärtige Anzahl von PhysX-Actors, ansonsten 0."

Das stand unter Rückgabewerte. Das klappt soweit auch.


Wenn ich den gleichen Level nochmal lade passiert das gleiche. Der Ball zappelt nach dem 1. Mapchange bei Bewegung.
Posted By: Superku

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/12/11 21:31

Dann reduzier deinen Code doch mal auf ein Minimalbeispiel, um den Fehler zu isolieren.
Oder setzt du manuell irgendwo im Skript "on_ent_remove" auf eine beliebige Funktion?
Posted By: Meerkat

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/13/11 15:02

Diesen von dir genannten Befehl nutze ich garnicht. wink Das hier ist mein Spielercode der normal ohne Probleme funzen sollte.

Code:
action Spieler()
{
	var gesprungen;
	
	ball = me;
	player = me;
	
	Physikents = pXent_settype(my, PH_RIGID, PH_SPHERE); //Model als Ball registrieren
	
	pXent_setfriction(my, my.Reibung); //Reibung des Balls
	pXent_setdamping(my, my.Daempfung, my.Daempfung); // 50 % Dämpfung in der Bewegung des Balls
	pXent_setelasticity(my, my.Elastizitaet); //Elastizität des Balls
	pXent_setgroup(my, 2);
	
	while(Auswertung_var == 0)
	{
		c_scan(my.x, my.pan, vector(360,0,40),IGNORE_ME	| SCAN_ENTS);
		
		/************************************************************************/
		/********************** Bewegungs-/ Cameracode **************************/
		/************************************************************************/
		
		if(key_pressed(72)) //hoch
		{
			pXent_addtorqueglobal(my, vector(0,45*time_step,0));
		}
		if(key_pressed(80)) //runter
		{
			pXent_addtorqueglobal(my, vector(0,-45*time_step,0));
		}
		if(key_pressed(75)) //links
		{
			pXent_addtorqueglobal(my, vector(-45*time_step,0,0));
		}
		if(key_pressed(77)) //rechts
		{
			pXent_addtorqueglobal(my, vector(45*time_step,0,0));
		}
		
		Falltiefe = c_trace(my.x, vector(my.x,my.y,my.z-1000), IGNORE_ME);
		
		if(key_pressed(57)) //Leertaste
		{
			if(Falltiefe < 30.267) // Balldicke = 30.266
			{
				pXent_addforcecentral(player, vector(0,0,1500*time_step));
			}
		}
		camera.x = my.x;
		camera.y = my.y;
		camera.z = my.z + 800;
		camera.tilt = -90;
		
		if(is(player, FLAG1)) //Ist Cameradrehung Flag 1 an?
		{
			Cameraset = 1;
		}
		else
		{
			Cameraset = 0;
		}
		if(Cameramode == 1)
		{
			//Camera dreht sich nicht
		}
		if(Cameramode == 2)
		{
			camera.pan += 1 * time_step;
		}
		if(Cameramode == 3)
		{
			camera.pan -= 1 * time_step;
		}
		
		wait(1);
	}
}




Hier ist der Event_Code für den Levelwechsel wenn ich mit dem EXIT kollidiere (berühre).

Code:
void Item_event()
{
	/**********************************************/
	/************** IMPACT EVENTS *****************/
	/**********************************************/
	
	if(event_type == EVENT_FRICTION)
	{
		if(is(my,FLAG1))
		{
			Physikents = pXent_settype(ball, 0, 0); //Model deregistrieren
			Physikents = pXent_settype(Ziel_ent, 0, 0); //Model deregistrieren
			
			wait(-0.5);
			Mapchange += 1;
			if(Mapchange == integer(1))
			{
				level_load (map_1);
				Cameramode = 1;
			}
			if(Mapchange == 2)
			{
				Code2anzeige_func();
				level_load (map_2);
				Cameramode = 1;
			}
		}
	}
	
	wait(1);
	ptr_remove(me);
	
	return;
}




Also der Code ist übersichtlich geschrieben um zu erkennen wofür was steht. Daher verstehe ich nicht wo das Problem liegt. Vielleicht sehe ich aber auch nur den Wald vor lauter Bäumen nicht, also den fauligen Baum der darin versteckt ist (also mein Fehler der mir einfach nicht auffällt). laugh Über Hilfe bin ich weiterhin sehr dankbar!


MfG

Rudi
Posted By: Superku

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/14/11 21:25

Ok ich guck mir den Code nun nicht genau an, aber was passiert, wenn du die Entities vor dem Levelwechsel nicht manuell deregistrierst?
Posted By: Meerkat

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/15/11 13:17

Genau das gleiche. In der nächsten Map hat der Ball bei Bewegung hin und wieder zappler. Genau das macht mich ja so wahnsinnig. Ich kann deregistrieren oder nicht, alles hilft nicht. Selbst wenn ich deregistriere und das Model lösche bringt das nichts. Ich habe es gestern Abend sogar versucht die PhysX Engine vor Mapchange zu deaktivieren, und nachm Mapchange wieder zu aktivieren um den Bug zu umgehen, aber selbst das funktioniert nicht. Ich verzweifel leider daran. Ich bin dir aber sehr dankbar dafür Superku das du versuchst mir zu helfen. laugh Mich interessiert langsam ob das noch ein Bug von der PhysX Engine is weil es ja noch frisch is. An was anderes glaube ich bald nicht mehr wenn das so weiter geht. ^^
Posted By: Superku

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/15/11 13:53

Sonst uploade doch mal ein Minimalbeispiel (nicht nur Code) und ich guck es mir dann an!
Posted By: Meerkat

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/15/11 18:24

So, hier habe ich dir ein Minimalbeispiel eben zusammen gestellt mit dem Originalen Code der auf das nötigste beschränkt wurde. Ich habs grad extra nochmal getestet, wieder das gleiche Problem (auch bei minimalem Code). Ab der 2. Map zuckt der Ball zeitweise.

http://www.gpi-studios.com/LARU/PhysXMapchangeTest.zip


MfG:

Rudi
Posted By: Superku

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/15/11 20:36

Hm wirklich komisch, kann ich leider nicht beantworten. Sonst poste das Beispiel doch mal im Bug Hunt Forum.
Posted By: Meerkat

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/15/11 20:45

Also hast du das Problem auch mit der Zappelei, ja? Ich werds mal im Bug Hunt Forum posten. Was anderes als ein Bug kann es ja garnicht mehr sein. Und ich zermarter mir schon seid gut einer Woche meinen Schädel und hatte alles mögliche durchprobiert. Ich danke dir vielmals Superku! Bist der beste! laugh
Posted By: Superku

Re: PhysX Objekt wird nicht aus registrierung gelöscht. - 07/15/11 20:57

Hehe nichts zu danken! Übrigens, das Problem scheint auch FPS-abhängig zu sein, sprich auf einer höheren Bildrate ist das Zappeln stärker (kannst du anmerken, wenn du den möglichen Bug berichtest).
© 2024 lite-C Forums