Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Один Sprite "прилипает" к другому (http://www.flasher.ru/forum/showthread.php?t=183481)

Isfet 23.08.2012 10:16

Один Sprite "прилипает" к другому
 
Вложений: 1
суть задачи такова есть желтый спрайт, когда к нему перемещают мышкой синий спрайт он должен "прилипнуть" к его кромке, немного залезть под желтый, далее если перемещать мышку по кругу вокруг желтого спрайта, синий спрайт должен поворачиваться,перемещаясь по кромке желтого, оставаясь так же прилипшим к желтому. Отлипнуть он должен только если мышка переместилась далеко от кромки желтого спрайта.
Оба спрайта могут быть любой формы (многоугольники, овалы и тп), отрисовываются с помощью graphics, точка регистрации находится в центре
Вот рисунок для наглядности.
Вложение 28366

Tails 23.08.2012 10:30

А в чём проблема? Что не получается? Задача на 7 класс.

Проверяйте расстояние от круга до мышки небезызвестной формулой пифагора.
Если оно меньше нужного, "прилипаем" квадрат к кругу:
  1. Находим угл мышки от круга
  2. Считаем координаты для синего квадрата путём откладывания отрезка от центра круга в направлений угла.

Вот хорошая статейка по геометрий: http://www.flasher.ru/forum/blog.php?b=576

Wolsh 23.08.2012 10:32

Сумма гонорара не указана. Раздел Вакансии тоже не здесь. Здесь не ставятся задачи. Здесь задаются вопросы.
Итак, что у Вас конкретно не получилось?

Isfet 23.08.2012 11:16

Цитата:

Сообщение от Tails (Сообщение 1093421)
Находим угл мышки от круга

Я написал что желтой фигурой может быть не только круг, а любая фигура абсолютно, поэтому геометрией тут не обойтись.
Тут скорее всего нужно смотреть перекрываются эти фигуры или нет, но вот как прицепить синий спрайт именно к кромке объекта, у меня даже в голову не может придти как то сразу, поэтому и спрашиваю совета, в какую вообще сторону смотреть...

Tails 23.08.2012 12:06

Мне видится 3 способа:
  • Графический - отрисовать жёлтую фигуру в bitmap, и "идти" от точки регистраций в направлений мышки, ища прозрачный пиксель.
  • Геометрический - обрисовать фигуру геометрической фигурой, как массив точек вершин. Разбить на треугольники, одна из вершин которых - точка регистраций. Далее искать в каком из них проходит "линия от центра к мышке". Затем найти точку пересечения стороны треугольника этой линией.
  • Использовать физический движок, например Nape. Тоже как и во втором варианте - описать фигуру. Затем просто использовать класс Ray для поиска точки пересечения.

caseyryan 23.08.2012 17:37

Цитата:

поэтому геометрией тут не обойтись.
А чем тогда? )

Wolsh 23.08.2012 17:51

Магией. Любая фигура липнет к любой фигуре — боюсь геометрия здесь бессильна.

alatar 23.08.2012 18:04

Можно физикой. На квантовом уровне получится вполне прилично все увязать. :)

Isfet 23.08.2012 22:33

по этому геометрией тут не обойтись. != она вообще не нужна
Tails спасибо за совет, буду пробовать.


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

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