Просмотр полной версии : Динамическое рисование и столкновение с объектом
Всем привет. Созрел тут вопросик. Поиск не дал решений.
Вообщем...Мне нужно, чтоб линия(динамическое рисование) столкивалась с объектом(мувиклип) и происходило действие (в данном случее объет изчезает). Странно то, то с простым хитТестом линия взаимодействует, но взаимодействует как полный объект, то есть как 4-х угольник. А мне нужно, чтоб взаимодействовала как линия, нужно сложное столкновение. Вообщем посмотрите, вроде код правильный, только не хочет работать. С обычными мувиками все работает, а в данном случае исключение почему-то. Помогите пожалуйста, кто может.
Вот сам файл.
Нету ни у кого вариантов ?
Разве такой сложный пример ? :( Ну хотя бы объясните с какой стороны подойти. Просто как я понимаю, тут совсем другая схема столкновений, хитТестом не получится. Походу прийдется через математические функции решать.
В Вашем случа можно просто проверить,_xmouse и _ymouse на пересечение границ квадратика,и все
Да если бы всё было так легко =) Это самый простой пример. Просто у меня в игре будет не один клип, а много =) И нужно, чтоб когда мувики попадали под линию, то они удалялись.
Добавлено через 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 минут
Можете хотя бы сказать с какой стороны подходить =)
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;
}
}
}
};
silin, cпасибо тебе большое, все отлично работает ! =)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.