![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 102
|
Всем привет. Созрел тут вопросик. Поиск не дал решений.
Вообщем...Мне нужно, чтоб линия(динамическое рисование) столкивалась с объектом(мувиклип) и происходило действие (в данном случее объет изчезает). Странно то, то с простым хитТестом линия взаимодействует, но взаимодействует как полный объект, то есть как 4-х угольник. А мне нужно, чтоб взаимодействовала как линия, нужно сложное столкновение. Вообщем посмотрите, вроде код правильный, только не хочет работать. С обычными мувиками все работает, а в данном случае исключение почему-то. Помогите пожалуйста, кто может. Вот сам файл. Нету ни у кого вариантов ? Последний раз редактировалось iNils; 04.12.2008 в 02:37. |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 102
|
Разве такой сложный пример ?
Ну хотя бы объясните с какой стороны подойти. Просто как я понимаю, тут совсем другая схема столкновений, хитТестом не получится. Походу прийдется через математические функции решать. |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
В Вашем случа можно просто проверить,_xmouse и _ymouse на пересечение границ квадратика,и все
__________________
Я просто добрый шутник. |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 102
|
Да если бы всё было так легко =) Это самый простой пример. Просто у меня в игре будет не один клип, а много =) И нужно, чтоб когда мувики попадали под линию, то они удалялись.
Добавлено через 18 часов 58 минут _root.onEnterFrame=function(){ //if(_root.koly.hitTest(_root.enemy)){ //_root.enemy._visible=0; //} _root.createEmptyMovieClip("koly",this.getNextHighestDepth()); _root.koly.lineStyle(2,0xff0000,100); _root.koly.moveTo(_root.player._x,_root.player._y); with(_root.koly){ if (_root.enemy.hitTest(getBounds(_root).xMin, _y, true)) { _root.enemy._visible=0; } if (_root.enemy.hitTest(getBounds(_root).xMax, _y, true)) { _root.enemy._visible=0; } if (_root.enemy.hitTest(_x, getBounds(_root).yMin, true)) { _root.enemy._visible=0; } if (_root.enemy.hitTest(_x, getBounds(_root).yMax,true)) { _root.enemy._visible=0; } } } _root.onMouseDown=function(){ _root.koly.lineTo(_root._xmouse,_root._ymouse); } Добавлено через 48 часов 14 минут Можете хотя бы сказать с какой стороны подходить =) Последний раз редактировалось iNils; 14.12.2008 в 01:55. |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 102
|
Вопрос ещё открыт
|
|
|||||
|
Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
|
sersir отредактируй свой код тегам code
__________________
Пока я жив, Вы горем обеспечены |
|
|||||
|
как вариант смотреть не хитТест с мувиком линии а хитТест с точками траектории:
_root.createEmptyMovieClip("koly",this.getNextHighestDepth()); koly.lineStyle(2,0xff0000,100); _root.onMouseDown = function() { koly.moveTo(player._x,player._y); koly.lineTo(_xmouse,_ymouse); if (enemy._visible) { var dx = (_xmouse-player._x)/100;//100-к примеру, зависит от условий задачи var dy = (_ymouse-player._y)/100; for (var i:Number = 0; i<100; i++) { var x = player._x+i*dx; var y = player._y+i*dy; if (enemy.hitTest(x, y)) { enemy._visible = false; return; } } } }; |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 102
|
silin, cпасибо тебе большое, все отлично работает ! =)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|