PDA

Просмотр полной версии : Движение по краю объекта


Dr.XxX
13.06.2008, 20:02
Как можно реализовать движение по краю объекта ?

http://img182.**************/img182/1902/traektoriare0.jpg

объект (он отмечен синим)
И траектория (отмечена красным).

Я имею ввиду программно, а не в ручную =)
Можете описать сам принцип ?

zanull
13.06.2008, 20:39
тут используеться самое обычное уровнение движения по окружности, подобное уже было на форуме, тут надо поискать и программый метод тоже был! поищите, тут все есть, вот например:
http://www.flasher.ru/forum/showthread.php?t=74680&highlight=%E4%E2%E8%E6%E5%ED%E8%E5+%EF%EE+%EE%EA%F0%F3%E6%ED%EE%F1%F2%E8

Dr.XxX
13.06.2008, 20:49
Ну в данном случае то можно движение по окружности.
А если
http://img354.**************/img354/9505/traektoria2cw9.jpg

iNils
13.06.2008, 20:55
Используйте метод hitTest или getPixel32 класса BitmapData

Dr.XxX
13.06.2008, 21:41
Что-то я не совсем понял зачем нужен в данном случае getPixel32();

Если объект будет разноцветный, а линия траектории просто тут обозначена для более ясного уточнения вопроса.

iNils
13.06.2008, 21:43
Что-то я не совсем понял зачем нужен в данном случае getPixel32(); Чтобы определить степень прозрачности пикселя.

Dr.XxX
13.06.2008, 21:50
Тоесть, пока следущий пиксель не прозрачный, то перемещяется на него, да ?

iNils
13.06.2008, 21:57
Нет, надо определять степень прозрачности. На 100% не прозрачный переходить нельзя, он не является границей. Между 100, 95 и 90 процентами, надо выбирать 95.

Dr.XxX
13.06.2008, 23:09
Ок, спасибо.

Dr.XxX
15.06.2008, 19:47
http://file.lv/images/files/full/tm32aW.jpg
Я так понял точка1._alpha = 0, а там где у объекта появляется цвет уже 100.
А от куда вы тогда взяли 90 прозрачность .. ?

Роман Вадимович
15.06.2008, 20:04
Может Вам подойдет такое решение?

Добавлено: не увидел, что нужно программное решение ...

orcpochta
15.06.2008, 20:22
Используйте метод hitTest или getPixel32 класса BitmapData

эти методы одного порядка по ресурсной трудоемкости?

iNils
15.06.2008, 20:49
А от куда вы тогда взяли 90 прозрачность .. ?Антиалисинг по краю объекта.

эти методы одного порядка по ресурсной трудоемкости?Не знаю, не тестировал. Проведите тест сами и узнаете.

orcpochta
15.06.2008, 21:56
Не знаю, не тестировал. Проведите тест сами и узнаете.

я до понимания BitmapData еще не дорос...)))

Dr.XxX
15.06.2008, 22:24
iNils а разве hitTest тут подойдёт, он же реагирует на невидимую часть объекта ? (на предыдущим рисунке обозначена синим)

orcpochta
15.06.2008, 22:33
iNils а разве hitTest тут подойдёт, он же реагирует на невидимую часть объекта ? (на предыдущим рисунке обозначена синим)

есть еще поточечный хит тест, например:

//проверяет попадание точки (this._xmouse, this._ymouse) на фактическую область объекта
var bOverlap:Boolean = mcCircle.hitTest(this._xmouse, this._ymouse, true);

//проверяет попадание точки (this._xmouse, this._ymouse) на ограничивающий прямоугольник объекта
var bOverlap:Boolean = mcCircle.hitTest(this._xmouse, this._ymouse, false);

iNils
15.06.2008, 22:34
Почему на невидимую?

Dr.XxX
16.06.2008, 02:01
orcpochta, а как тогда края фигуры по точкам разбить, в ручную только ? :-O

iNils, ну она же прозрачная (часть от чёрного контура круга, до синего квадрата.
http://file.lv/images/files/full/tm32aW.jpg

iNils
16.06.2008, 02:49
Я писал об hitTest класса BitmapData, а не MoveiClip

Dr.XxX
21.06.2008, 02:58
А есть ли ещё варианты решение этой проблемы ?
Просто до появления BitmapData, как-то её ведь решали.

iNils
22.06.2008, 02:57
А есть ли ещё варианты решение этой проблемы ?
Просто до появления BitmapData, как-то её ведь решали.Мучались с обычным хиттестом.