Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Движение по краю объекта (http://www.flasher.ru/forum/showthread.php?t=112962)

Dr.XxX 13.06.2008 20:02

Движение по краю объекта
 
Как можно реализовать движение по краю объекта ?

[IMG]http://img182.**************/img182/1902/traektoriare0.jpg[/IMG]

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

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

zanull 13.06.2008 20:39

тут используеться самое обычное уровнение движения по окружности, подобное уже было на форуме, тут надо поискать и программый метод тоже был! поищите, тут все есть, вот например:
http://www.flasher.ru/forum/showthre...ED%EE%F1%F2%E8

Dr.XxX 13.06.2008 20:49

Ну в данном случае то можно движение по окружности.
А если
[IMG]http://img354.**************/img354/9505/traektoria2cw9.jpg[/IMG]

iNils 13.06.2008 20:55

Используйте метод hitTest или getPixel32 класса BitmapData

Dr.XxX 13.06.2008 21:41

Что-то я не совсем понял зачем нужен в данном случае getPixel32();

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

iNils 13.06.2008 21:43

Цитата:

Сообщение от Dr.XxX (Сообщение 745501)
Что-то я не совсем понял зачем нужен в данном случае 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

Вложений: 1
Может Вам подойдет такое решение?

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

orcpochta 15.06.2008 20:22

Цитата:

Сообщение от iNils (Сообщение 745496)
Используйте метод hitTest или getPixel32 класса BitmapData

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

iNils 15.06.2008 20:49

Цитата:

Сообщение от Dr.XxX (Сообщение 745739)
А от куда вы тогда взяли 90 прозрачность .. ?

Антиалисинг по краю объекта.

Цитата:

Сообщение от orcpochta (Сообщение 745744)
эти методы одного порядка по ресурсной трудоемкости?

Не знаю, не тестировал. Проведите тест сами и узнаете.

orcpochta 15.06.2008 21:56

Цитата:

Сообщение от iNils (Сообщение 745747)
Не знаю, не тестировал. Проведите тест сами и узнаете.

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

Dr.XxX 15.06.2008 22:24

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

orcpochta 15.06.2008 22:33

Цитата:

Сообщение от Dr.XxX (Сообщение 745757)
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

Цитата:

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

Мучались с обычным хиттестом.


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

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