Da ich mit der Methode oben nicht weiter gekommen bin, habe ich es nun anders versucht, leider auch mit wenig Erfolg. Diesmal habe ich versucht, die Rotation im lokalen Entitykoordinatensystem vorzunehmen, wodurch ich eine einfachere Rotationsmatrix (hier nur für die lokale z-Achse der Entity) verwenden kann. Vor und nach der Rotation wird jeweils eine Koordinatentransformation durchgeführt. Allerdings funktioniert auch das nicht. Liegt hier vielleicht ein generelles Problem vor, das ich einfach nicht sehe?
var alpha_w;
alpha_w += 45;
VECTOR ent_local_pos_new;
VECTOR ent_local_pos_old;
VECTOR mouse_ent_new;
var c;
var s;
vec_set(ent_local_pos_old,mouse_ent.x);
vec_to_ent(ent_local_pos_old,mouse_ent);
c = cosv(alpha_w);
s = sin(alpha_w);
ent_local_pos_new.x = c * ent_local_pos_old.x - s * ent_local_pos_old.y;
ent_local_pos_new.y = s * ent_local_pos_old.x + c * ent_local_pos_old.y;
ent_local_pos_new.z = ent_local_pos_old.z;
vec_for_ent(ent_local_pos_new,mouse_ent);
vec_set(mouse_ent.x,ent_local_pos_new);
Last edited by gameplan; 05/17/12 22:24.