Hi,
ich versuche nun schon seit einer ganzen Woche meine Winkel so zu berechnen wie in "Große Frage zu..." beschrieben, aber komme einfach nicht weiter.
broozar hat mich dan auf das "gimbal lock"-Problem hingewiesen.
Ich hab dan mal seinen Link verfolgt und mich bei Wiki über gimbal lock schlau gemacht.
Ich raffe aber einfach nicht wie das gehen soll.
alles was ich bisher hingekrigt habe ist dieser Code:
action AApasa
{
var z1; var z2; var z3;
var m1; var m2; var m3;
my.passable=on;
wait(1);
z1=my.x-bark1.x;
z2=my.y-bark1.y;
z3=my.z-bark1.z;
m1=my.pan;
m2=my.tilt;
m3=my.roll;
while(1){
my.passable=on;
vec_set(my.x,bark1);
vec_set(my.pan,bark2);
c_move(me,vector(z1,z2,z3),nullvector,IGNORE_YOU);
my.pan+=m1;
my.tilt+=m2;
my.roll+=m3;
wait(1);}
}
bark1 bezeichnet hier die Position des Bezugsobjeckts und bark2 seine Winkel.
Der Code funktioniert ganz gut, solange die Objekte mit dieser Action schön brav die Ausgangswinkel 0,0,0 haben. Aber das sollen sie ja nicht immer.
In jedem dritklassigem Panzer-Spiel ist dieses Problem gelöst.
(die Geschütze auf dem Panzern sind eigendtändige Objekte, die sich jedoch drehen können, also nicht nur die winkel 0,0,0 haben)