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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.02.2008, 11:09
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 1  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
По умолчанию Использование метода Math.random() относительно объекта

здравствуйте, у меня возник вопрос - возможно ли сделать так, чтоб clip1 размещался на clip2 в произвольном порядке, но никогда не выходил за пределы clip2 с помощью метода Math.random()?
Clip2 произвольной формы. Помогите пожалуйста
__________________
тут я


Последний раз редактировалось КорДум; 03.02.2008 в 11:37.
Старый 03.02.2008, 12:18
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 2  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Код:
clip1._x = Math.round(clip2._width * Math.random());
clip1._y = Math.round(clip2._height * Math.random());

Старый 03.02.2008, 14:15
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 3  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Сообщение от MrPoma
Код:
clip1._x = Math.round(clip2._width * Math.random());
clip1._y = Math.round(clip2._height * Math.random());
данный метод хорош только тогда, когда регистрационная точка clip2 находится в верхнем левом углу клипа, а сам clip2 находится в левом верхнем углу сцены...
__________________
тут я

Старый 03.02.2008, 14:46
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 4  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Так что мешает доработать до нужного? смотрим размеры и расположение области, где позиция 1ого клипа допустима, добавляем поправку на положение clip2, и делаем поправку на точку регистрации клипов, хотя я бы рекомендовал использовать левый верхний угол везде - меньше проблем будет.
__________________
4am is time to rock

Старый 03.02.2008, 14:52
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 5  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
можно с примером? при условии, что clip2 находится и в отрицательной области, и в положительной...
__________________
тут я

Старый 03.02.2008, 15:13
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 6  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Код:
//Позиции точек регистрации клипов вводим вручную
//т е выделяем все содержимое и смотрим на панели свойств X и Y
var clip1centerX:Number = -24;
var clip2centerX:Number = -20;
var clip1centerY:Number = -20;
var clip2centerY:Number = -41;
//Подразумевается, что clip2 больше clip1
var deltaWidth:Number = clip2._width-clip1._width;
var deltaHeight:Number = clip2._height-clip1._height;
//
clip1._x = clip2._x+Math.random()*deltaWidth-clip1centerX+clip2centerX;
clip1._y = clip2._y+Math.random()*deltaHeight-clip1centerY+clip2centerY;
Пример:пример.rar
__________________
4am is time to rock


Последний раз редактировалось DarkLight; 03.02.2008 в 15:22.
Старый 03.02.2008, 20:33
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
DarkLight, большое спасибо за помощь...
__________________
тут я

Старый 29.02.2008, 12:59
Arreke вне форума Посмотреть профиль Отправить личное сообщение для Arreke Посетить домашнюю страницу Arreke Найти все сообщения от Arreke
  № 8  
Ответить с цитированием
Arreke
[+3 29.01.08]
 
Аватар для Arreke

Регистрация: May 2004
Адрес: Казахстан
Сообщений: 33
метод Math.random() генерирует случ. числа от 0.0 до 1.0
А как сделать чтобы генерировал простые числа от 1 до 11, как например в Delphi random(11) ?

Старый 29.02.2008, 13:06
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 9  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от Arreke
метод Math.random() генерирует случ. числа от 0.0 до 1.0
А как сделать чтобы генерировал простые числа от 1 до 11, как например в Delphi random(11) ?
Так и написать, как в Дельфи -
Код:
trace(random(мое_число))
вернет значение целого числа от 0 до мое_число-1

Старый 29.02.2008, 13:09
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
chingachgoog, сейчас по рукам получит за обучение старым методам.
надо делать так
Код:
Math.ceil (Math.random () * 11)
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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