ok, nach einigen weiteren tests habe ich glaube ich das hauptproblem, auf dem das alles basiert ausfindig gemacht...
undzwar dreht sich der charakter nicht in seinem zentrum, sondern er dreht sich um den startpunkt...
Allerdings habe ich noch keine lösung gefunden, um das koordinatensystem für die drehung in den charaktermittelpunkt zu transferieren...
habe schon drüber nachgedacht, den charakter einfach zurückzubewegen.. sah dann so aus:
if(publickeys.up || publickeys.down || publickeys.left || publickeys.right){
Matrix mat = character.getTranslationMatrix().cloneMatrix();
character.setTranslationMatrix(mat.invert());
character.translateMesh();
character.getRotationMatrix().setIdentity();
character.rotateY(-rotychar);
character.rotateX(rotxcharnew);
character.rotateY(rotychar + rotycharnew);
rotxchar += rotxcharnew;
rotychar += rotycharnew;
rotxcharnew = 0;
rotycharnew = 0;
character.rotateMesh();
character.setTranslationMatrix(mat);
character.translateMesh();
}
jedoch funktionierte es auch damit nicht..
nja, aber auf jeden fall löst das das verschieben problem, da der charakter dann ja von der gedrehten stelle aus sich weiterbewegte, beim zurückdrehen um nicht nicht bewegten drehpunkt, war der abstand zu der kamera, die sich korrekt verhielt natürlich verändert..
ja, diese zeile konnte ich auch streichen....
Nun, was ich erreichen will ist, dass man bei aktiviertem rechtsklick die kamera um den charakter drehen kann...
wenn man sich bewegt, soll der charakter die drehung mitvollziehn... also auch nach drehung der kamera und späterem beginn der bewegung diese drehung "nachholen".... ist mit der steuerung in spielen wie guild wars gut zu vergleichen denke ich
ein kompilierbares beispiel habe ich jetzt leider nicht zu hand, werde die tage aber zusehn, dassich eins zusammenstelle, wenn es bis dahin nicht gelöst ist
EDIT: das backposition speicher einfach den simplevector der momentanen position ab