rendered paste body// koordinatsystem
lineStyle(1, 0x000000, 100);
moveTo(200, 0);
lineTo(200, 400);
moveTo(0, 200);
lineTo(400, 200);
attachMovie("foo", "foo", getNextHighestDepth());
foo._x = foo._y = 200;
foo.onEnterFrame = function()
{
this._rotation = calc_rotation_angle(this, {_x: _root._xmouse, _y: _root._ymouse});
}
_root.onEnterFrame = function()
{
var angle = calc_rotation_angle(this, {_x: _root._xmouse, _y: _root._ymouse});
if (Key.isDown(Key.UP)) {
foo._x = foo._x + Math.cos(angle) * 3;
foo._y = foo._x + Math.sin(angle) * 3;
}
if (Key.isDown(Key.DOWN)) {
foo._x = foo._x - Math.cos(angle) * 3;
foo._y = foo._x - Math.sin(angle) * 3;
}
}
function calc_dist(mc1, mc2)
{
var a = mc1._x - mc2._x;
var b = mc1._y - mc2._y;
return Math.sqrt(a*a + b*b);
}
function calc_rotation_angle(mc1, mc2)
{
var a = mc1._x - mc2._x;
var b = mc1._y - mc2._y;
var angle = Math.atan(b / a) / Math.PI*180;
if (angle < 0 && b < 0) { angle = 180 + angle; }
else if (angle > 0 && b > 0) { angle = -180 + angle; }
if (angle == 0 && a > 0) angle = 180;
return angle;
}
function calc_absolute_angle(mc1, mc2)
{
var a = mc1._x - mc2._x;
var b = mc1._y - mc2._y;
var angle = Math.atan(b / a) / Math.PI*180;
if (b > 0) {
if (angle < 0) angle *= -1; // quad 1
else angle = 180 - angle; // quad 2
} else {
if (angle < 0) angle = 180 - angle; // quad 3
else angle = 360 - angle; // quad 4
}
return angle;
}