Показать сообщение отдельно
Старый 09.10.2012, 14:22
Orfei вне форума Посмотреть профиль Отправить личное сообщение для Orfei Найти все сообщения от Orfei
  № 1  
Ответить с цитированием
Orfei
 
Аватар для Orfei

Регистрация: Aug 2012
Адрес: Санкт-Петербург
Сообщений: 12
По умолчанию Неправильный поворот относительно мыши

Помогите с кодом, пожалуйста!

В общем, ситуация такая:
На главной сцене мувик (танк). Внутри него еще один мувик (башня танка).
Делал так чтобы танк ездил и поворачивался сам +вращение башни вслед за мышкой.
Вроде все сделал танк ездит, башня крутится. Если танк стоит или перемещается в перед назад, то башня ведет себя как надо, смотрит ровно туда куда и курсор мыши, но стоит только начать поворот самого танка как башня начинает вращаться в обратную сторону! Да и просто при повороте танка на угол идет смещение поворота башни относительно курсора!
Помогите решить проблему! Я себе уже весь моСк взорвал!!!

исходники во вложенном файле.танки.rar

Собственно сам код:
Код AS1/AS2:
 //
var step = 2;
var rotDirSpeed = 3;
 
onEnterFrame = function () {
        if (Key.isDown(Key.LEFT)) {
            hero_mc._rotation -= rotDirSpeed;
         } else if (Key.isDown(Key.RIGHT)) {
            hero_mc._rotation += rotDirSpeed;
         }
 
         var mDx = _xmouse - hero_mc._x;
         var mDy = _ymouse - hero_mc._y;
         var mAngle = Math.atan2(mDy, mDx);
         hero_mc.body_mc._rotation = -hero_mc._rotation + mAngle / Math.PI * -180; //поворачиваем башню за мышкой
 
         var dirAngle = hero_mc._rotation / 180 * Math.PI;
         if (Key.isDown(Key.UP)) {
             hero_mc.foot_mc.play();
             hero_mc._x -= step * Math.cos(dirAngle);
             hero_mc._y -= step * Math.sin(dirAngle);
        } else if (Key.isDown(Key.DOWN)) {
             hero_mc.foot_mc.play()
             hero_mc._x += step * Math.cos(dirAngle);
             hero_mc._y += step * Math.sin(dirAngle);
        } else {
             hero_mc.foot_mc.stop();
        }
};
onMouseDown = function () {
        hero_mc.body_mc.play(); //стреляем по клику
};


Последний раз редактировалось Orfei; 09.10.2012 в 15:43. Причина: Требование модератора