Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 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. Причина: Требование модератора
Создать новую тему   Часовой пояс GMT +4, время: 07:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 07:09.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.