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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.03.2009, 18:40
SashaBorandi вне форума Посмотреть профиль Отправить личное сообщение для SashaBorandi Найти все сообщения от SashaBorandi
  № 1  
Ответить с цитированием
SashaBorandi
[+1.3 20.03.09]

Регистрация: Oct 2007
Сообщений: 35
По умолчанию Помогите с алгоритмом "Столкновение объектов"..

Ребята...

У меня с помощью функции случайное число:
Код AS3:
private function RandomBetween(lower:Number, high:Number):Number {
	return (lower + Math.floor(Math.random() * (high - lower + 1)));
}
генерируется координаты X и Y клипов (MovieClip).. Но иногда они накладываются друг на друга, как это избежать? Как я понимаю нужно проверять "Столкновение", но не знаю как этот алгоритм должен работать?

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

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
для прямоугольных проканает
DisplayObject.hitTestObject(objisplayObject):Boolean

Старый 12.03.2009, 21:09
SashaBorandi вне форума Посмотреть профиль Отправить личное сообщение для SashaBorandi Найти все сообщения от SashaBorandi
  № 3  
Ответить с цитированием
SashaBorandi
[+1.3 20.03.09]

Регистрация: Oct 2007
Сообщений: 35
Да но у меня постоянно False!

Как я понял это потому что у моих MovieClip, ширина и высота равна нулю..

Вот кусок года...

Код AS3:
private function createMenuLayer(iDepth:Number, menu:Array) {
	var mcMenuLayer:MovieClip = new MovieClip();
	mcMenuLayer.iDepth = iDepth;
	for (var i = 0; i < menu.length; ++i) {
		var menuWidth =  -  iDepth / 2 + Math.random() * iDepth;
		var menuHeight =  -  iDepth / 2 + Math.random() * iDepth;
		var menuLayer:MovieClip = addMenusItem(mcMenuLayer,menu[i].name,menu[i].title,menu[i].target);
		menuLayer.name = 'menuButton'+i;
		menuLayer.x = menuWidth * 500;
		menuLayer.y = menuHeight * 500;
 
		for (var m = 0; m < i; ++m) {
			var iObject = mcMenuLayer.getChildByName('menuButton'+i);
			var mObject = mcMenuLayer.getChildByName('menuButton'+m);
			trace(iObject.hitTestObject(mObject));
		}
		//if (menuLayer.hitTestObject();)
	}
	return this.addChild(mcMenuLayer);
}
 
private function addMenusItem(mcMenuLayer:MovieClip, nameMenu:String, titleMenu:String, targetMenu:String) {
	var mcMenuButton:MenuButton = new MenuButton(titleMenu);
	return mcMenuLayer.addChild(mcMenuButton);
}


Последний раз редактировалось SashaBorandi; 12.03.2009 в 21:11.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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