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

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

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

Регистрация: Nov 2008
Адрес: Ukraine
Сообщений: 88
Отправить сообщение для Merf с помощью ICQ Отправить сообщение для Merf с помощью Skype™
По умолчанию Функция возвращает одно и то же значение

Здравствуйте, у меня одна проблема.

Код AS1/AS2:
function turel_define(array_id:Number):Array
{
    var temp_array:Array = turels[array_id];
    temp_array = turels[array_id];
    temp_array[1] = races[Math.floor(Math.random() * 8) + 1];
    temp_array[3] = turels[array_id][3] + (Math.floor(Math.random() * (turels[array_id][3] / 5) - (turels[array_id][3] / 10)));
    temp_array[4] = turels[array_id][4] + (Math.floor(Math.random() * (turels[array_id][4] / 5) - (turels[array_id][4] / 10)));
    temp_array[5] = turels[array_id][5] + (Math.floor(Math.random() * (turels[array_id][5] / 10) - (turels[array_id][5] / 20)));
    temp_array[6] = turels[array_id][6] + (Math.floor(Math.random() * (turels[array_id][6] / 5) - (turels[array_id][6] / 10)));
    temp_array[7] = turels[array_id][7] + (Math.floor(Math.random() * (turels[array_id][7] / 10) - (turels[array_id][7] / 20)));
trace(temp_array);
    return temp_array;
}
 
for (var i:Number = 1; i <= 5; i++)
{
    ship_stats[i] = turel_define(0);
}
В цикле 5 раз вызываю функцию. Она должна произвести некоторые математические действия и вернуть массив с числами. Каждый масив записать в масив ship_stats. В функции производятся действия которые должны вернуть более менее рандомное число, основываясь на некоторых переменных, но тем не менее каждый элемент массива ship_stats идентичен друг другу.

trace(temp_array) выдает правильные результаты, всегда разные.

Подскажите пожалуйста, почему функция каждый раз записывает один и тот же масив в масив ship_stats?
__________________
http://merfius.weebly.com/

Старый 08.05.2012, 12:41
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
А где у вас определяется turels, races?
Вообще контекст неполный, было бы проще, если бы лишнее убрали или уж тогда было бы все нужное.
__________________
Идите первым!

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

Регистрация: Nov 2008
Адрес: Ukraine
Сообщений: 88
Отправить сообщение для Merf с помощью ICQ Отправить сообщение для Merf с помощью Skype™
Цитата:
Сообщение от mooncar Посмотреть сообщение
А где у вас определяется turels, races?
Вообще контекст неполный, было бы проще, если бы лишнее убрали или уж тогда было бы все нужное.
Определяются в предыдущем кадре.

Сделал так:

Код AS1/AS2:
function turel_define(array_id:Number):Array
{
    var temp_array:Array = new Array();
    temp_array[1] = Math.random();
    temp_array[3] = Math.random();
    temp_array[4] = Math.random();
    temp_array[5] = Math.random();
    temp_array[6] = Math.random();
    temp_array[7] = Math.random();
    trace(temp_array);
    return temp_array;
}
 
for (var i:Number = 1; i <= 5; i++)
{
    ship_stats[i] = turel_define(0);
}
и записались разные значения. Значит проблема в моих вычислениях.
Спасибо что натолкнули. Буду разбиратся.
__________________
http://merfius.weebly.com/

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

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

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


 


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


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