Скрипт действия Подвижные точки и линии

Я довольно новичок в Action Script и у меня есть пара вопросов об игре, которую я делаю:

  1. Как я могу сделать перетаскивание объекта MovieClip мышью?
  2. Если у меня есть два экземпляра MovieClip, возможно ли создать новую фигуру / объекты MovieClip, которые выглядят как линия и которые будут соединены?
  3. У меня есть функции, проверяющие, не конфликтуют ли экземпляры фрагмента ролика 'node' с экземплярами фрагмента ролика 'line', теперь это все разные функции и условные, но возможно ли проверить, все ли из них верны?

Спасибо за любую помощь. Серьезно, любая помощь велика.

2 ответа

1) посмотрите на startDrag/stopDrag методы. Тогда может быть вызван на Sprite или любой его подкласс

2) да, вы можете использовать graphics объект любого спрайта для рисования произвольных линий / фигур

3) для обнаружения столкновений с несколькими объектами вам придется проходить через каждый объект. попробуйте использовать for петля

Что ж, сначала сделать перетаскиваемый MovieClip довольно просто, вам просто нужно сделать mc.startDrag(); и mc.stopDrag(); остановить движение...

Обычно это делается вместе с примером событий MOUSE_DOWN и MOUSE_UP:

mc.addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEvent):void
{
    e.currentTarget.startDrag();
});

mc.addEventListener(MouseEvent.MOUSE_UP, function (e:MouseEvent):void
{
    e.currentTarget.stopDrag();
});

Вы также можете определить блокировку центра или прямоугольника, который ограничивает перетаскивание метода startDrag, в основном, если центр блокировки имеет значение true, мышь прилипает к центру мувиклипа при перетаскивании, а прямоугольник ограничивает область перетаскивания, например холст.

Второй вопрос,

Вы можете создать новый MC в AS3 следующим образом: var mc:MovieClip = new MovieClip(); затем нарисуйте линию в MC с графикой...

Более подробный пример:

var mc:MovieClip = new MovieClip();
mc.graphics.beginFill(0x000000);
mc.graphics.lineStyle(2,0x000000);

//start drawing the line
mc.graphics.moveTo(10,10);
mc.graphics.lineTo(10,100);
mc.graphics.endFill();

//Position your new movie clip
mc.x = 80;
mc.y = 60;
addChild(mc);

Наконец, я не уверен, как вы реализовали обнаружение столкновений, но вы можете иметь массив состояний для каждого элемента и изменять их, когда что-то сталкивалось, тогда вы можете зацикливаться в массиве, чтобы проверить, все ли они верны...

Другие вопросы по тегам