![]() |
Информационные иконки бонусов с таймером
Допустим: есть герой, есть бонусы с ограниченным по времени действием, когда герой "берет" такой бонус - начинается действие связанное с этим бонусом и запускается таймер по истечению которого нужный бонус отключается.Хочу информировать игрока о том, что он подобрал такой то бонус и он закончится через столько то секунд, примерно это будет выглядеть так: http://www.flasher.ru/forum/attachme...1&d=1332614497
В следующий момент, игрок увидит, что иконка бонуса "1" - удалится, а иконки "2" и "3" поднимутся, то есть "2" займет место "1" а "3" поднимется на место "2". Пожалуйста, подскажите как реализовать? Когда думал сам - сделал такой класс под это дело, но ничего толком не работает: Код AS3:
|
У Вас один таймер, а бонусов может быть несколько, взятых в разное время. Надо каждому бонусу привязывать свой таймер, либо таймер тикает постоянно, а к бонусам привязывается время, в которое их взяли, и на каждый тик проверяется и показывается... лучше каждому по таймеру, имхо.
У Вас одна приватная переменная iconMC, а иконок может быть несколько. Так нужна ли приватная переменная, или лучше хранить их в массиве? Свитч я бы убрал. Сделать массив классов иконок, и при получении кода бонуса просто брать класс из массива по этому индексу Код AS3:
|
Цитата:
Код AS3:
|
А я разве не об этом говорю? Вот у Вас три иконки скажем, в контейнере и в массиве. Вы сравниваете их с iconMC (впрочем Вы сравниваете зачем-то id. Зачем, если в массиве такие же ссылки на клипы иконок, как и переменная iconMC?) Ну а сама iconMC это что? Это последняя из добавленных иконок (бонусов). То есть я, например, не могу понять из вашего кода, над какими объектами производятся действия и как по одному конечному таймеру отсчитывается время жизни для нескольких бонусов. Вам бы с этим для начала разобраться, не с красотами всплывания.
И не slice, а splice. Slice не изменяет массив, к которому применяется, а возвращает новый. То есть вот так будет возвращен массив с одним вырезанным элементом. В этом смысл слова slice ("ломтик"). Код AS3:
Код AS3:
|
Проблема непонимания друг друга кроется в разном уровне профессионализма, я этим меньше года занимаюсь...
А как Вы бы поступили на моем месте? Как бы решили эту задачу? посоветуйте пожалуйста Цитата:
Все операции с самими бонусами происходят в классе Bonus. Это класс для иконок и действий с ними. Я думал, что 1го таймера хватит... Вот пришел номер бонуса из класса Bonus, по этому номеру я узнаю какой мувик достать из библиотеки и добавить его в специально отведенное под иконки место ... дальше что делать? |
Я бы сделал отдельный класс для индикации бонуса. Пусть принимает в конструктор иконку для отображения и время действия. И таймер прямо в нем создавал, и пусть себе считает для этого конкретного бонуса, и показывает как Вам удобно – цифрами, или прогрессбаром – течение времени. Когда время кончится, посылает событие "я кончился". На это событие при создании бонуса подписывается менеджер бонусов. Поймав событие, что данный бонус кончился, менеджер удаляет его с панельки и из массива и двигает остальные, если они есть.
|
| Часовой пояс GMT +4, время: 07:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.