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

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

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

Регистрация: Aug 2012
Сообщений: 145
По умолчанию непрописанный рандом в координатах

вот весь код:
Код AS3:
var style100x100:Array = ["cafe","office","game","shop"]
var item_cafe:Array = [new cafeBOX1(), new cafeBOX2(), new cafeBOX3(), new cafeBOX4()]
var item_office:Array = [new officeBOX1(), new officeBOX2(), new officeBOX3(), new officeBOX4()]
var item_game:Array = [new gameBOX1(), new gameBOX2(), new gameBOX3(), new gameBOX4()]
var item_shop:Array = [new shopBOX1(), new shopBOX2(), new shopBOX3(), new shopBOX4()]
var ITEM_STYLE:MovieClip
var STYLE100X100:String
var rooms = [new room100x50(), new room100x50(), new room50x50(), new room150x50()]
var cybers = rooms[Math.floor( Math.random() * rooms.length )]
addChild (cybers)
 
STYLE10x5 ()
 
function STYLE10x5 ()
{
   STYLE100X100 = style100x100[Math.floor( Math.random() * style100x100.length )]
   if (STYLE100X100 == style100x100[0])
   {
      for (var ION1:uint; ION1<4;ION1++)
      {
         trace (ION1)
         ITEM_STYLE = item_cafe[Math.floor( Math.random() * item_cafe.length )]
         addChild(ITEM_STYLE)
         ITEM_STYLE.x = cybers.x +(13*ION1)
         ITEM_STYLE.y = cybers.y - 4
      }
   }
   if (STYLE100X100 == style100x100[1])
   {
      for (var ION2:uint; ION2<4;ION2++)
      {
         trace (ION2)
         ITEM_STYLE = item_office[Math.floor( Math.random() * item_office.length )]
         addChild(ITEM_STYLE)
         ITEM_STYLE.x = cybers.x +(13*ION2)
         ITEM_STYLE.y = cybers.y - 4
      }
   }
   if (STYLE100X100 == style100x100[2])
   {
 
      for (var ION3:uint; ION3<4;ION3++)
      {
         trace (ION3)
         ITEM_STYLE = item_game[Math.floor( Math.random() * item_game.length )]
         addChild(ITEM_STYLE)
         ITEM_STYLE.x = cybers.x +(13*ION3)
         ITEM_STYLE.y = cybers.y - 4
      }
   }
   if (STYLE100X100 == style100x100[3])
   {
 
      for (var ION4:uint; ION4<4;ION4++)
      {
         trace (ION4)
         ITEM_STYLE = item_shop[Math.floor( Math.random() * item_shop.length )]
         addChild(ITEM_STYLE)
         ITEM_STYLE.x = cybers.x +(13*ION4)
         ITEM_STYLE.y = cybers.y - 4
      }
   }
}
вопрос: почему у меня в рандомном порядке ставится от 0 до 4 объектов и в разных координатах?

и не говорите что код ужасен, я сам это знаю!

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Цитата:
вопрос: почему у меня в рандомном порядке ставится от 0 до 4 объектов и в разных координатах?
Ответ: потому что вы так написали.
А чего хотелось собственно?

Старый 24.01.2013, 20:44
XMON вне форума Посмотреть профиль Отправить личное сообщение для XMON Найти все сообщения от XMON
  № 3  
Ответить с цитированием
XMON
[+1 13.12.12]
[++1 13.12.12]

Регистрация: Aug 2012
Сообщений: 145
чтобы генерировалось 4 объекта с интервалом в 13 пикселей, но что надо исправить в коде чтобы сделать нормальную генерацию объектов и их расположение?


Последний раз редактировалось XMON; 24.01.2013 в 21:07.
Старый 24.01.2013, 21:13
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 4  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Код AS3:
// Функция, возвращающая ссылку на вновь созданный
// экземпляр MovieClip'а.
function getRandomCafe():MovieClip
{
  var rand:int = Math.random() * 4;
  if (rand == 0) return new cafeBOX1();
  else if (rand == 1) return new cafeBOX2();
  else if (rand == 2) return new cafeBOX3();
  else if (rand == 3) return new cafeBOX4();
}
 
// Позже, в вашей функции
...
      // Не забывайте инициализировать переменную
      // в заголовке цикла.
      for (var ION1:uint = 0; ION1<4;ION1++)
      {
         trace (ION1)
         ITEM_STYLE = getRandomCafe();
         addChild(ITEM_STYLE)
         ITEM_STYLE.x = cybers.x +(13*ION1)
         ITEM_STYLE.y = cybers.y - 4
      }
...

Старый 24.01.2013, 21:30
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 5  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
XMON, может вам и надоело конечно что ваш код называют плохим. Но посмотрите в разделе ActionScript 3.0 вверху замечательная ссылка, базовый курс по Flash. Ну красиво же всё и доступно.
ПОТРАТЬТЕ 10 (десять!) дней, и перестаньте мучать себя и людей вокруг.

Я уже далеко не первый раз говорю об этом на форуме. Все берутся сразу писать что-то грандиозное, а выходит всё равно неизвестно что. И это вместо того чтобы размеренно и поэтапно обучаться.
__________________
adobe AS3 manual

Старый 25.01.2013, 01:16
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Вы не братья случайно?

Так-с. Продолжаем изучать русский язык. Предложение начинается с заглавной буквы. Бан на два дня.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Jan 2009
Сообщений: 1,651
Цитата:
почему у меня в рандомном порядке ставится от 0 до 4 объектов и в разных координатах?
Сначала ты создаешь 4 готовых объекта:
Код AS3:
var item_cafe:Array = [new cafeBOX1(), new cafeBOX2(), new cafeBOX3(), new cafeBOX4()]
потом в цикле выбираешь один из объектов в массиве и ставишь его в координатах:
Код AS3:
 
for (var ION1:uint; ION1<4;ION1++)
      {
         trace (ION1)
         ITEM_STYLE = item_cafe[Math.floor( Math.random() * item_cafe.length )]
         addChild(ITEM_STYLE)
         ITEM_STYLE.x = cybers.x +(13*ION1)
         ITEM_STYLE.y = cybers.y - 4
      }
Скажем в первом круге цикла выпало число 1, соответствует new cafeBOX2(). В сетке с смещением 0 оно и отображается. Теперь во втором круге цикла опять выпадает число 1. Соответствует тому же new cafeBOX2(). Это тот же самый объект, и теперь ты его размещаешь в координатах со смещением 1. Т.е. оно исчезает в одном месте и появляется в другом. Понимаешь?

Решение тебе подсказывают в посте №4. И в прошлой твоей теме тоже подсказывали. Только ты его не понимаешь. Ты не видишь разницы между понятиями "класс" и "экземпляр класса".
__________________
мой пустой блог

Старый 25.01.2013, 15:04
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 8  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от iflamberg Посмотреть сообщение
new cafeBOX2(). Это тот же самый объект
new cafeBOX2() это не тот же объект, а новый экземпляр вроде.

Извиняюсь, перепутал. Я думал там классы в массиве
__________________
adobe AS3 manual

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

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

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


 


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


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