![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2013
Сообщений: 8
|
Здравствуйте, как добавить на сцену некоторое кол-во одинаковых обьектов (экземпляров мувиклипа). И как сделать так, что бы они двигались в рандомном направлении в пределах сцены?
|
|
|||||
|
Регистрация: Nov 2013
Сообщений: 8
|
|
|
|||||
|
Tails, ☺
Разбейте задачу на подзадачи: 1) Допустим у вас есть мувиклип A, с которым вы хотите проделать вышесказанное. 2) Нужно им как-то управлять. Для этого создадим класс C, наследник Sprite, экземпляры которого будут содержать в себе экземпляры A. 3) В классе C напишем создание (a = new A()) экземпляра нашего клипа, добавление его ребенком экземпляру класса C (addChild(a)) и управление им. 4) Управление им состоит из: выбора случайного первоначального направления и последующего движения в этом направлении. Это уже зависит от того, как именно вы хотите двигать объект. 5) Лучше будет двигать экземпляр C, чтобы потом иметь возможность без особых проблем заменить A на другой клип. 6) Допустим мы имеем класс С, который в своем конструкторе создает экземпляр клипа A, добавляет его в свой список отображения (addChild) и при необходимости (либо при вызове определенного метода напрямую, либо в момент получения события ADDED_TO_STAGE, либо прямо в конструкторе) начинает двигаться по заданному алгоритму. 7) Все что остается сделать, создать в цикле требуемое количество экземпляров C (возможно расставить их на случайные координаты) и добавить их на сцену все тем же addChild. |
|
|||||
|
Вы знакомы с классами? Подскажите, что конкретно у вас не получается? Вы знакомы с actionscript?
Что-бы добавить объект из библиотеки, вам нужно прописать для него Класс (в свойствах мувика в библиотеке в поле Class). После этого, вы сможете создать экземпляр данного объекта, например (код на сцене) Что-бы выполнить одинаковую задачу много раз, нужно использовать циклы, например цикл for. |
|
|||||
|
Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
|
private var items: Array = []; private function init() : void { initMovieClips(); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function initMovieClips() : void { for (var i: int = 0; i < 10; i++) { var mc: MovieClip = new MyMovieClip(); var angle: Number = Math.random() * Math.PI * 2; var speed: Number = 2; mc.x = stage.stageWidth * Math.random(); mc.y = stage.stageHeight * Math.random(); mc.dx = Math.cos(angle) * speed; mc.dy = Math.sin(angle) * speed; addChild(mc); items.push(mc); } } private function onEnterFrame(e: Event) : void { for each (var mc: MovieClip in items) { mc.x += mc.dx; mc.y += mc.dy; // Здесь можно проверять достиг ли объект пределов сцены и, например, // менять направление движения } }
__________________
Не всех война убила - многих покалечила |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:12. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|