Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как добавить на сцену n-ое кол-во обьектов и их движение (http://www.flasher.ru/forum/showthread.php?t=205376)

CinCun 01.12.2013 17:42

Как добавить на сцену n-ое кол-во обьектов и их движение
 
Здравствуйте, как добавить на сцену некоторое кол-во одинаковых обьектов (экземпляров мувиклипа). И как сделать так, что бы они двигались в рандомном направлении в пределах сцены?

Tails 01.12.2013 18:40

Написать код.

CinCun 01.12.2013 18:49

Цитата:

Сообщение от Tails (Сообщение 1153975)
Написать код.

Спасибо за конструктивный ответ. Ты мне очень помог!

bav 01.12.2013 18:58

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.

samana 01.12.2013 19:02

Вы знакомы с классами? Подскажите, что конкретно у вас не получается? Вы знакомы с actionscript?
Что-бы добавить объект из библиотеки, вам нужно прописать для него Класс (в свойствах мувика в библиотеке в поле Class). После этого, вы сможете создать экземпляр данного объекта, например (код на сцене)
Код AS3:

var myMovie:MyClass=new MyClass();
addChild(myMovie);

Что-бы выполнить одинаковую задачу много раз, нужно использовать циклы, например цикл for.

RandomUser 01.12.2013 19:18

Код AS3:

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, время: 11:06.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.