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

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

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
Arrow Сортировка объектов со случайным индексом.

Сразу извинюсь за столь непонятное название темы.
Для того чтобы долго не описывать что мне надо просто приведу пример. Игра Zuma, надо сделать чтобы шарики откатывались назад, когда пользователь выпустил шар и цвета шаров совпали. Дело в том, что когда я выстреливаю шаром, я добавляю его в конец массива, а визуально он может стать на любое место в цепочке. Поэтому я не могу просто пробежаться по всему массиву и сказать той части шариков, которые до разрыва - стоять на месте, а той что после - двигаться назад! Как думаете, лучше всё таки менять индекс шара в массиве на тот который по счету визуально или что-то другое можно предпринять?

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

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Можно хранить в каждом шарике указатели на его соседей. Это даст возможность перебирать шарики в том порядке, в котором они идут в цепочке.
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
получается вы предлагаете в шарике создать
Код AS3:
public static var balls_arr:Array = []
и при создании шара пушить в этот массив созданный шар?
Но что делать потом, как разделить эти шары на те которые должны двигаться назад и те которые должны стоять на месте?

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
А я бы не добавлял в конец массива. Или, сортировал массив шариков по другому параметру (условным координатам к примеру)
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Mar 2011
Сообщений: 38
Я бы предложил сделать разные массивы для разных цветов пузырьков. И перебором проверять на hitTestObject() только внутри одного массива, не трогая другие цвета.

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
Цитата:
Я бы предложил сделать разные массивы для разных цветов пузырьков. И перебором проверять на hitTestObject() только внутри одного массива, не трогая другие цвета.
а какой в этом смысл? Ну даже если будут разные массивы, как их назад то отодвигать, они то в разнобой все ставятся друг за другом. И hitTestObject() тут недостаточно эффективен. Я рассчитываю расстояние между центрами шаров.

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

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
А если так:
- проверяете на столкновение с шарами,
- анализируете положение в массиве шаров с которыми произошло столкновение, цвет там и т.д.
- принимаете решение о том, что дальше происходит (убираются шарики, теснятся чтобы впустить этот...),
- потом splice-ете новый шар в нужную позицию.

Хотя порядок следования в массиве ведь не имеет значения, да? Имеют значение текущие координаты каждого из шаров?

Старый 31.03.2011, 05:38
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 8  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Я предлагаю примерно следующее
Код AS3:
//выпущенный шарик
var newBall:Ball = getLaunchedBall();
 
//прилетел между двумя другими шариками
var previousBall:Ball = getPreviousBall();
var nextBall:Ball = getNextBall();
 
//Привязываем наш шарик к новым соседям
newBall.prev = previousBall;
newBall.next = nextBall;
 
//Привязываем соседей к нашему шарику (до этого они указывают друг на друга)
previousBall.next = newBall;
nextBall.prev = newBall;
 
//Проходим по цепочке от нашего шарика до конца, по пути собирая шарики в массив
var ballsToMove:Array = [];
var currentBall:Ball = newBall;
while(currentBall = currentBall.next)ballsToMove.push(currentBall);
 
//Двигаем собранные шарики
moveBalls(ballsToMove);
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Я предлагаю примерно следующее
Это же двунаправленный список. Люблю я их :о))
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

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

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


 


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


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