Цитата:
Сообщение от silin
ну да, по точке D или C в глобальных координатах посчитать нужный угол не сложно, только для этого мувик уже должен быть повернут на этот угол 
|
Хм.. совсем не обязательно мувик должен быть уже повёрнут ) Всё ведь работает.

Код AS3:
public class Main extends Sprite
{
private var cannon:Sprite;
private var localD:Point=new Point(0,50)
public function Main()
{
//draw cannon
cannon = new Sprite();
cannon.graphics.lineStyle(10);
cannon.graphics.moveTo( 0, -50);
cannon.graphics.lineTo(0, 50);
cannon.graphics.lineTo(50,50);
cannon.graphics.lineStyle(1, 0xC0C0C0);
cannon.graphics.moveTo(localD.x, localD.y);
cannon.graphics.lineTo(localD.x + 500, localD.y);
cannon.x = 400;
cannon.y = 300;
addChild(cannon);
stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMove);
}
private function stage_mouseMove(e:MouseEvent):void
{
var gPoint:Point = cannon.localToGlobal(localD);
var dx:Number = mouseX - gPoint.x;
var dy:Number = mouseY - gPoint.y;
var ang:Number = Math.atan2(dy, dx);
cannon.rotation = ang * (180 / Math.PI);
}
}
silin я совершенно не против вашего метода, не подумайте. Ваш код умнее моего варианта, потому что геометрия для меня - китайская грамота.