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

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

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

Регистрация: Aug 2003
Сообщений: 204
По умолчанию отрицательный рендом

Сто лет ничего не писал на экшен скрипте, решил вспомнить как оно и чего и понял что почти всё позабывал ну бывает в общем...
Делаю следующую заморочку: есть некий объект, задача следующая - он в начале маленький, потом должен увеличиваться и с рендомной скоростью полететь из центра мувика в какую-то сторону.

Код AS1/AS2:
onClipEvent (load) {
//задаем размер в 1 пиксель
    this._width = 1;
    this._height = 1; 
//располагаем объект по середине мувика
    this._x=_root._width/2;
    this._y=_root._height/2;
//скорость увеличения размера
    k=random(5);
}
Далее нужно сделать что бы увеличивался в размерах и улетал в какую-то точку

Код AS1/AS2:
onClipEvent (enterFrame) {
    this._width = this._width+k;
    this._height = this._height+k;
    this._x = this._x+d;
    this._y = this._y+m;
}
Вот тут я и облажался в системе координат, для переменных d и m надо задать рендом от -10 до 10 (допустим), как это выглядит напомните плиз, рендом с заданными двумя числами от ___ до ___.

Заранее спасибо

Старый 16.10.2010, 02:39
f.g.programmer вне форума Посмотреть профиль Отправить личное сообщение для f.g.programmer Найти все сообщения от f.g.programmer
  № 2  
Ответить с цитированием
f.g.programmer
 
Аватар для f.g.programmer

блогер
Регистрация: Sep 2010
Адрес: Россия
Сообщений: 137
Записей в блоге: 3
Код AS3:
function random(a:Number, b:Number):Number {
    return a + (b - a) * Math.random();
}

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

Регистрация: Aug 2003
Сообщений: 204
не понял ничего, можно наглядный пример, т.е. у меня есть переменная d я хочу присвоить ей рендомное значение от -10 до 10, если без отрицательных до 10 это выглядит так:

Код AS1/AS2:
onClipEvent (load) {
d = random (11);
}
покажи плиз как оно правильно выглядит в твоём варианте. Пробовал так:
Код AS1/AS2:
d= random(a + (b - a));
не хочет принимать отрицательные значения

можно конечно извратиться и сделать
Код AS1/AS2:
d= -10 + random(20);
но это имхо изврат

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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Код AS1/AS2:
function _random(a:Number, b:Number):Number {
    return Math.round(a + (b - a) * Math.random());
}
d =  _random(-10, 10);

Старый 16.10.2010, 04:41
DJ_Baton вне форума Посмотреть профиль Отправить личное сообщение для DJ_Baton Найти все сообщения от DJ_Baton
  № 5  
Ответить с цитированием
DJ_Baton

Регистрация: Aug 2003
Сообщений: 204
Mnilionic, пасиба, теперь понял

Старый 16.10.2010, 06:20
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 6  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
Только, наверное, корректнее будет не round, а floor:

Код AS1/AS2:
function _random(a:Number, b:Number):Number {
    return a + Math.floor((b - a + 1) * Math.random());
}
d =  _random(-10, 10);
А если значения нужны дробные, то "Math.floor" и "+1" убираем.

Старый 16.10.2010, 17:08
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 7  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
floor округляет в меньшую сторону до целого любую дробь.
Тогда как raound округляет математически и получается равный шанс появления как меньшего так и ближайшего большего целого.

Старый 16.10.2010, 17:48
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от Mnilionic Посмотреть сообщение
floor округляет в меньшую сторону до целого любую дробь.
Тогда как raound округляет математически и получается равный шанс появления как меньшего так и ближайшего большего целого.
http://www.flasher.ru/forum/showpost...2&postcount=26

Старый 16.10.2010, 20:17
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 9  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
и действительно...
Спасибо.

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

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

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


 


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


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