Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.12.2013, 17:42
CinCun вне форума Посмотреть профиль Отправить личное сообщение для CinCun Найти все сообщения от CinCun
  № 1  
Ответить с цитированием
CinCun

Регистрация: Nov 2013
Сообщений: 8
По умолчанию Как добавить на сцену n-ое кол-во обьектов и их движение

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

Старый 01.12.2013, 18:40
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Написать код.
__________________
Дети не должны знать о своих родителях

Старый 01.12.2013, 18:49
CinCun вне форума Посмотреть профиль Отправить личное сообщение для CinCun Найти все сообщения от CinCun
  № 3  
Ответить с цитированием
CinCun

Регистрация: Nov 2013
Сообщений: 8
Цитата:
Сообщение от Tails Посмотреть сообщение
Написать код.
Спасибо за конструктивный ответ. Ты мне очень помог!

Старый 01.12.2013, 18:58
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 4  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
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.

Старый 01.12.2013, 19:02
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 5  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Вы знакомы с классами? Подскажите, что конкретно у вас не получается? Вы знакомы с actionscript?
Что-бы добавить объект из библиотеки, вам нужно прописать для него Класс (в свойствах мувика в библиотеке в поле Class). После этого, вы сможете создать экземпляр данного объекта, например (код на сцене)
Код AS3:
var myMovie:MyClass=new MyClass();
addChild(myMovie);
Что-бы выполнить одинаковую задачу много раз, нужно использовать циклы, например цикл for.

Старый 01.12.2013, 19:18
RandomUser вне форума Посмотреть профиль Отправить личное сообщение для RandomUser Найти все сообщения от RandomUser
  № 6  
Ответить с цитированием
RandomUser

Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
Код 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, время: 16:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:25.


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