Скрипт действия Подвижные точки и линии
Я довольно новичок в Action Script и у меня есть пара вопросов об игре, которую я делаю:
- Как я могу сделать перетаскивание объекта MovieClip мышью?
- Если у меня есть два экземпляра MovieClip, возможно ли создать новую фигуру / объекты MovieClip, которые выглядят как линия и которые будут соединены?
- У меня есть функции, проверяющие, не конфликтуют ли экземпляры фрагмента ролика '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);
Наконец, я не уверен, как вы реализовали обнаружение столкновений, но вы можете иметь массив состояний для каждого элемента и изменять их, когда что-то сталкивалось, тогда вы можете зацикливаться в массиве, чтобы проверить, все ли они верны...