Ne, vec_rotateback rotiert ja 'ne richtung, keinen winkel.

Ich hatte mal genau dieses Problem, mit Pfeilen die in einem Körper stecken bleiben sollten. Irgendwie haben wir das damals hinbekommen...

Okay, ich hab's mal ausprobiert. Der Trick hier ist, dass ich einfach jeden Frame das Objekt so drehe wie das parent objekt sich gedreht hat.
Code:
VECTOR dirRestore, oldAng;
	vec_diff(dirRestore, you.x, my.x);
	vec_rotateback(dirRestore, my.pan);
	VECTOR angRestore;
	
	while(my)
	{
		my.pan += (key_cul-key_cur)*time_step*6;
		my.tilt += (key_cuu-key_cud)*time_step*6;
		
		vec_set(temp, dirRestore);
		vec_rotate(temp, my.pan);
		vec_set(you.x, temp);
		
		ang_diff(angRestore, my.pan, oldAng);
		ang_add(you.pan, angRestore);

		vec_set(oldAng, my.pan);
		wait(1);
	}


Bei mir funktionierts.

Edit: hatte noch vergessen: am anfang (wenn das objekt draufgeladen wird) musst du unbedingt
vec_set(oldAng, my.pan); machen. Sonst springt es im ersten frame danach, weil oldAng noch 0,0,0 ist und damit ang_diff(angRestore, my.pan, oldAng); quark zurückgibt.

Last edited by Germanunkol; 03/10/11 16:20.

~"I never let school interfere with my education"~
-Mark Twain