|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Возможно ли просчитать пересечение неправильных фигур?
Возможно ли просчитать примерно такую схему? линия очерчивающая воина будет границей.. если меч пересекает ее то- повреждение если нет, то нет ) |
|
|||||
Если описывать вручную, то получается довольно много писанины, это не очень эффективно... а содержание условий if может быть очень большим... а это не есть гуд.
вот сколько у меня ушло на описание одного удара в ручную http://binarylife.ru/ftp/strikeup.rar |
|
|||||
Регистрация: Dec 2003
Сообщений: 143
|
попробуй использовать
MovieClip.hitTest() |
|
|||||
Регистрация: Aug 2001
Адрес: vg
Сообщений: 352
|
закрой фигуру окружностями. перечечние линии с окружностью решается в одно действие, заключающеесяся в решении одного квдаратного уравнения. 7-8 класс если не ошибаюсь.
|
|
|||||
а на фига мне пересечение окружностей... ну зеленый шаман подсказал
|
|
|||||
2Mitay.... А как она работает? можешь объяснить по подробнее???
|
|
|||||
Регистрация: Aug 2001
Адрес: vg
Сообщений: 352
|
Цитата:
Окружность есть центр плюс радиус. Любую фигуру можно таким образом описать с заданной точностью. В конце концов атом это тоже своего рода сфера, ее проекция есть окружность. hitTest() штука полезная, простая, но для твоего случая слишком ресурсоемкая. |
|
|||||
Регистрация: Dec 2003
Сообщений: 143
|
MovieClip.hitTest()
Availability Flash Player 5. Usage my_mc.hitTest(x, y, shapeFlag) my_mc.hitTest(target) Parameters x The x coordinate of the hit area on the Stage. y The y coordinate of the hit area on the Stage. The x and y coordinates are defined in the global coordinate space. target The target path of the hit area that may intersect or overlap with the instance specified by my_mc. The target parameter usually represents a button or text-entry field. shapeFlag A Boolean value specifying whether to evaluate the entire shape of the specified instance (true), or just the bounding box (false). This parameter can be specified only if the hit area is identified using x and y coordinate parameters. Returns A Boolean value of true if my_mc overlaps with the specified hit area, false otherwise. Description Method; evaluates the instance specified by my_mc to see if it overlaps or intersects with the hit area identified by the target or x and y coordinate parameters. Usage 1: Compares the x and y coordinates to the shape or bounding box of the specified instance, according to the shapeFlag setting. If shapeFlag is set to true, only the area actually occupied by the instance on the Stage is evaluated, and if x and y overlap at any point, a value of true is returned. This is useful for determining if the movie clip is within a specified hit or hotspot area. Usage 2: Evaluates the bounding boxes of the target and specified instance, and returns true if they overlap or intersect at any point. Example The following example uses hitTest() with the _xmouse and _ymouse properties to determine whether the mouse pointer is over the target's bounding box: if (hitTest( _root._xmouse, _root._ymouse, false)); The following example uses hitTest() to determine if the movie clip ball overlaps or intersects the movie clip square: if(_root.ball.hitTest(_root.square)){ trace("ball intersects square"); } Т.е. определяет пересекает ли мувик 1 мувик 2 |
|
|||||
меценат
|
все гораздо проще))))
вот посмотри))) P.S. можно и просто хит тестом делать добавляю к нему кординатные описания формы взаимодействующего обьекта но это довольно узкий метот в применении и годится развешто для каких нибудь пуль.
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники |
|
|||||
2Mitay:
Видишь ли, если использовать метод if(_root.ball.hitTest_root.square)) {trace("ball intersects square")}, то он будет смотреть не внутренние пересечения с линиями а рамки!!! клипов, что не подходит!... Не видя предложения D12 я решил создать маску на каждое положение воина (к сожелению анимация примерно 40 кадров, что может увеличить лишний вес) и проверять не зашла ли крайняя точка меча в эту маску... вот и все. Этот метод должен будет сработать для горизонтального положения меча, а вот когда он ударяет под углом, тут пока не знаю )) 2D12: Не мог бы ты объяснить что значит: - with (_root.bad) - getBounds(_root).xMax (для условия if (_root.b3.hitTest(getBounds(_root).xMax, _y, true))) Если не трудно своими словами и по русски ) Решение очень интересное но что к чему не пойму |
Часовой пояс GMT +4, время: 17:17. |
|
« Предыдущая тема | Следующая тема » |
|
|