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

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

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

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

Добрый день, флэшеры. Надеюсь, правильно раздел выбрал

Суть вот в чем. По ссылке http://dn1.ru/kiprino есть игрулька. Там надо выбрать рецепт и потом словить необходимые для него продукты. Сейчас продукты выпадают по рандому. Т.е. у каждого продукта есть номер, который и выбирается случайным образом. Кстати, попутно вопрос: как-нибудь улучшить рандомность Math.random() существует возможность? А то часто очень повторяются номера. Вернемся к продуктам. В некоторых рецептах бывает нужно большое количество определенных продуктов, например 4 яйца или 8 картошек. Очень вероятно, что за 2 минуты нужное их кол-во вообще не выпадет. Теперь вопрос. Как сделать так, чтобы необходимое кол-во нужных продуктов непременно выпало за 2 минуты, но все равно сохранить рандомность их выпадения? Т.е. помино нужных продуктов выпадали еще и ненужные. В принципе нужен наверное сам алгоритм выпадения, но если что можно и код необходимый привести - буду признателен. Мой код таков:
Код:
productInt = setInterval(makeProducts,ingFallFreq);
function makeProducts() {
	// Выбор номера продукта делается здесь от 0 до 14:
	prodNum = Math.floor(Math.random() * ingTotalNum);
	prod_X = Math.floor(Math.random() * (430 - 30)) + 30;
	
	var newIng:MovieClip = ingCont.attachMovie("ing_"+prodNum,"newIng_"+ingCont.getNextHighestDepth(),ingCont.getNextHighestDepth());
	newIng.id = prodNum;
	newIng._x = prod_X;
	newIng._y = -20;
	newIng.onEnterFrame = function() {		
		this._y = this._y + ingFallSpeed;
		if(this.hitTest(RAT.kastrulya)) {
			catchSnd.start();			
			ingCatchArr[this.id]++; 
			catchProduct(this.id);
			this.removeMovieClip();		
		}
		if(this._y > ingFallBorder) {
			this.removeMovieClip();
		}
	}	
}
__________________
я только учусь...

Старый 17.12.2007, 12:47
Chas вне форума Посмотреть профиль Отправить личное сообщение для Chas Посетить домашнюю страницу Chas Найти все сообщения от Chas
  № 2  
Ответить с цитированием
Chas
 
Аватар для Chas

Регистрация: Sep 2002
Адрес: simferopol
Сообщений: 981
Отправить сообщение для Chas с помощью ICQ
посчитать, сколько продуктов успевает выпасть за 2 минуты.
генерировать выпадающие продукты заранее. сначала добавить в массив необходимые продукты (я бы добавил их раза два-три). перемешать массив. добавить мусорных продуктов в случайных ячейках массива. выкидывать из массива, а не рандомом.
__________________
~
Never trouble trouble till trouble troubles you!

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

Регистрация: Aug 2006
Сообщений: 134
UP
А кто-нить еще способ знает. Мне кажется рандомность выпадения в таком случае будет еще меньше...
__________________
я только учусь...

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

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

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


 


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


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