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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.08.2012, 21:06
mihael_p вне форума Посмотреть профиль Отправить личное сообщение для mihael_p Посетить домашнюю страницу mihael_p Найти все сообщения от mihael_p
  № 1  
Ответить с цитированием
mihael_p

Регистрация: Jul 2011
Сообщений: 249
Отправить сообщение для mihael_p с помощью Skype™
По умолчанию Ограничение угла поворота оружия у героя

Уважаемые, столкнулся сегодня с такой проблемой: Есть герой, у него есть оружие, оружие "следит" за курсором, герой ходит вправо и влево. Задача такова: при движении влево, оружие может двигаться от 0 градусов до 90 градусов, при движении вправо - от 90 гр. до 180 гр. С движением влево - проблем нет, а вот при движении вправо - возникает одна, когда градус становится больше 180 (курсор опускается ниже ) оружие занимает положение в 90 градусов. Вот кусочек кода отвечающего за это:
Код AS3:
private function updateRotation(e:Event):void
{
   var a:Point = new Point(hero.x, hero.y);
   var b:Point = new Point(stage.mouseX, stage.mouseY);
 
   var rotateTo:Number = anglePoisk(a, b); 
 
   hero.gun.rotation = rotateTo - 180;; 
   if ( hero.gun.rotation< minAngle)
   {
    a hero.gun.rotation = minAngle;
   }else if ( hero.gun.rotation > maxAngle)
   {
     hero.gun.rotation = maxAngle;
   }
 
} 
public function anglePoisk (a:Point, b:Point, rodian:Boolean = true):Number 
{
   if(!rodian) return Math.atan2(b.y - a.y, b.x - a.x); 
   return (180/Math.PI)*Math.atan2(b.y - a.y, b.x - a.x); 
}
При нажатии стрелок на клавиатуре я меняю minAngle и maxAngle
влево:
Код AS3:
minAngle = 0;
maxAngle = 90;
вправо:
Код AS3:
minAngle = 90;
maxAngle = 180;
Где моя ошибка, подскажите пожалуйста? Если кто то знает более лучшее решение этой проблемы - буду благодарен если поделитесь.
Изображения
 
__________________
Не стыдно спросить, стыдно не знать !

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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