Проблема с ротацией объекта

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.

Проблема с ротацией объекта

Сообщение MrDead » 11 май 2014, 19:19

Функция поворачивания объекта к игроку
  1. private function mob_obzor(ev:Event):void
  2.         {
  3.             if (main_player.bg.hitTestObject(shere_vis))
  4.             {
  5.                 for (i = 0; i < main_bgplatform.mass.length; i++)
  6.             {
  7.                 main_bgplatform.mass[i].rotation = Math.atan2(main_bgplatform.mass[i].y - main_bgplatform.igrok.y,main_bgplatform.mass[i].x - main_bgplatform.igrok.x) * 180 / Math.PI - 90
  8.                 rotation_mob = false;
  9.             }
  10.             }
  11.             else
  12.             {
  13.                  rotation_mob = true;
  14.             }


Ф-ция создания объектов на сцене
  1.     public function addmobs(obj:Object, x:uint, y:uint):void
  2.         {
  3.            
  4.             switch (obj.id)
  5.             {
  6.         case 0:
  7.             mob = new CreateMob(this,igrok);
  8.             mob.x = x;
  9.             mob.y = y - 1500;
  10.             paint_high.addChild(mob);
  11.             mass.push(mob);
  12.                     break;
  13.                 //Прямая верхняя стена
  14.         }


В общем суть в том, что когда игрок входит в диапозон обзора моба, он должен поворачиваться в нему, но вот получается так, что к какому бы объекту не подошел, все мобы смотрят на игрока, а надо чтобы поворачивался к игроку только тот, в чьем диапазоне он находится. Но вот что-то не особо получается, пробовал с массивом - удалось только поворачивать всех мобов к игроку) Подскажите что сделать(
MrDead

 
Автор темы
Сообщения: 103
Зарегистрирован: 13 сен 2012, 00:46
Благодарил (а): 20 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Проблема с раотацией

Сообщение MrDead » 13 май 2014, 21:45

Ну или подскажите как повернуть объект, который находится в радиусе 500х500 от центра основного объекта(к которому надо повернуться). То есть проверить, есть ли в зоне 500х500(от центра оснв.объекта) объект класса и добавить его в массив(даже если их несколько), а оттуда делать с ними что нужно
MrDead

 
Автор темы
Сообщения: 103
Зарегистрирован: 13 сен 2012, 00:46
Благодарил (а): 20 раз.
Поблагодарили: 0 раз.

Re: Проблема с раотацией

Сообщение XELAD » 13 май 2014, 22:02

Вероятно, в вашем варианте нужно
либо использовать hitTestObject, отрисовав вокруг главного персонажа зону,
либо считать в цикле расстояние от главного персонажа до мобов, и брать тех, которые в определенном радиусе,
либо сравнивать каждого моба с персом по x & y, тем самым используя прямоугольник (а не круг, как в варианте № 2).
XELAD

 
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25
Благодарил (а): 13 раз.
Поблагодарили: 24 раз.

Re: Проблема с ротацией объекта

Сообщение MrDead » 13 май 2014, 22:33

В общем то,решил без hittestobject проблему. Сейчас возник другой вопрос, вместе с поворачиванием объекта, поворачиваются и все остальные объекты входящие в его класс. Например

Когда моб поворачивается, поворачивается и text_level, в итоге цифры этого текстового поля исчезают. Что надо прописать, чтобы текстового поле не крутилось вместе с мобом? Попробовал что-то вроде этого в enter_frame
  1. text_level.rotation = 0 - main_bgplatform.mass[i].rotation;

Но не прокатило
MrDead

 
Автор темы
Сообщения: 103
Зарегистрирован: 13 сен 2012, 00:46
Благодарил (а): 20 раз.
Поблагодарили: 0 раз.

Re: Проблема с ротацией объекта

Сообщение Casperovskii » 13 май 2014, 23:23

MrDead
Нужно в класс ввести функцию, в которую при повороте будет передаваться значение поворота главного класса. А то вы привели одну строчку, а где она находится - не понятно.
Я так понимаю есть класс моб, а внутри него текстфиелд. Так вот функция эта должна каждый раз задавать значение text_level.rotation=-rot, где rot - значение угла поворота родительского класса. И то в этом случае текстфиелд будет переезжать вокруг моба.
А решением по-лучше будет поворачивать не весь родительский спрайт, а только иконку моба.

За это сообщение автора Casperovskii поблагодарил:
MrDead
Casperovskii

 
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50
Благодарил (а): 11 раз.
Поблагодарили: 43 раз.

Re: Проблема с ротацией объекта

Сообщение MrDead » 13 май 2014, 23:29

Спасибо. До этого в hittestobject нельзя было повернуть спрайт моба, т.к класс и объект в классе по координатам не совпадали, с другим способом поворачивается. Парадокс)
MrDead

 
Автор темы
Сообщения: 103
Зарегистрирован: 13 сен 2012, 00:46
Благодарил (а): 20 раз.
Поблагодарили: 0 раз.

Re: Проблема с ротацией объекта

Сообщение MrDead » 13 май 2014, 23:42

Всё норм)
MrDead

 
Автор темы
Сообщения: 103
Зарегистрирован: 13 сен 2012, 00:46
Благодарил (а): 20 раз.
Поблагодарили: 0 раз.


Вернуться в Программирование на Flash



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron