PDA

Просмотр полной версии : плавная наведение пушки


zhdanoff
19.12.2013, 10:36
вот тут (http://xitri.com/2009/02/27/vospominaniya-o-crimsonland-2-navedenie-na-cel.html) есть пример, но по-моему он на AS2.0, пробовал перенести в AS3 не получается, вот мой код:
var stvol:Stvol=new Stvol(); //добавляем ружье
var angle:Number=0;
stvol.x = 275;
stvol.y = 500;
addChild (stvol);
addEventListener(Event.ENTER_FRAME, stmous);
function stmous(e:Event):void{
angle = int(Math.atan2(stage.mouseY - 500, stage.mouseX - 275) * 180 / Math.PI);
stvol.rotation = angle;
}

Добавлено через 3 минуты
PS: в том примере готовый вариант внизу показан

toFL
19.12.2013, 12:57
Задайте конкретный вопрос, иначе не понятно чем вообще помогать.

zhdanoff
19.12.2013, 13:07
перейдите по ссылке, там в конце страницы пример как мне надо, плавное движение объекта, за курсором, который привязан к координатам, типа ствол двигает за курсором мышки

samana
19.12.2013, 14:01
По ссылке, тот код, что отвечает за медленный поворот сторону мыши вот -
rotToMouseSpeed = 3;//скорость поворота

function onEnterFrame() {
mDx = _xmouse - body._x;
mDy = _ymouse - body._y;
mAngle = Math.atan2(mDy, mDx);
//получаем угол между мышкой и башней в градусах
mAngleD = mAngle / Math.PI * 180;
//сколько градусов нехватает для полного поворота на мышь
dAngleD = body._rotation - mAngleD;
//без этой проверки башня будет неправильно крутиться
//при переходе границы -180 и +180 градусов
if (dAngleD > 180) {
dAngleD = -360 + dAngleD;
} else if (dAngleD < -180) {
dAngleD = 360 + dAngleD;
}
//поворачиваем башню с нашей скоростью
if(Math.abs(dAngleD) < rotToMouseSpeed) {
body._rotation -= dAngleD;
} else if(dAngleD > 0) {
body._rotation -= rotToMouseSpeed;
} else {
body._rotation += rotToMouseSpeed;
}
}

А вашей реализации для as3, нет и намёка о проверках поворота и т.д.

zhdanoff
19.12.2013, 14:04
да уже получилось, спасибо