Flash

Модификации

За вчера/сегодня полностью переписали Flash магазина, теперь покупку/продажу можно делать массово и даже одновременно, сначала прицениваясь, а потом одной кнопкой подтверждать.

магазин, лабиринты зыби, 7maze.ru

Красоту потом дорисуют - пока костяк.
В серверной части почти никаких изменений (ну кроме того что теперь обрабатывается скопом сразу).

Динамически изменяемые кнопки в Flash

Начали реализовывать «активируемые» способности, для этого нужно чтобы кнопка в Flash приобретала «нажатый» дизайн при включенной способности.

Т.к. Button вроде как MovieClip – было решение, приаттачить (attachMovieClip) к нему рамку – чтобы было видно что кнопка «нажата».

Но это был неправильный подход, т.к. Button в Flash – это Object, а не MovieClip.

Опять цвета и как можно все испортить

Делаем новый чат и сейчас понадобились цвета, вообще история с чатом и цветами имеет самые долгие корни, но как выяснилось – увы, но это не то что надо.

Цвета – были ужасно похожими очень многие, а потому была составлена вручную палитра цветов (пока 50 штук), для героев.
Было сделана передача в клиент, цвета героя (определяется порядковым номером в лабиринте, тупо позицией в векторе m->creatures.

Передача осуществляется как и другие параметры, при запросе getinfo.

Полет стрелы. Клиентская часть

цельПока внедрял на клиенте ограничения на стрельбу, наткнулся на кучу багов и мелких ошибок, причем тянулись они друг-за-другом.

Например, есть ограничение, что нельзя стрелять по невидимому противнику, невидимость противника сейчас на клиенте определяется чуть по другому, чем на сервере (на сервере используется алгоритм кругового обзора с прямыми лучами, а на клиенте упрощенный пока вариант – до цели меньше чем 4 клетки), была ошибка при движении невидимых противников – они все-же двигались.

Рушим сомнения

Для успешного запуска бета-версии сервера, меня останавливало несколько сомнений. Одно из них было успешно вчера преодолено.
Это скорость прорисовки, дело в том, что прорисовка на моем домашнем компе (P4 3ГГц 2Гб ОЗУ) было мягко говоря, не очень. Прорисовывалось кусками, и хотя я давно решил потом переписать функцию обрисовки, все равно был осадок. Вроде как – зачем делать гавно?

Вчера буквально одним глазком просмотрев функцию makeMap тут же вставил парочку if - и скорость прорисовки возросла в разы! Это сразу дало мне ощутимый пинок для дальнейшего развития.

Арена и воины

Доводим до ума арену, решил уменьшить ее размер (10x10) и сделать ее фиксированной вот, такого вида:
unsigned char pack[13]={255,7,88,111,133,149,86,90,104,191,1,254,7};

Собственно это сжатая на биты карта, для ее отображения небольшой код:
int TMap::MakeMapFromPack(unsigned char *pack)
{
int l =w*h;
int size_pack = l/8;
if (l % 8) size_pack++;
for(int j=0,i=0;i<size_pack;i++)
for(int k=0;k<8;k++)
if (j<l) Map[j++] = pack[i] & (1 << k);
}

Новые вещи

Дорисовал набор предметов, которые можно найти в сундуке в подвале старейшины.
Это уже известный нож, ржавый доспех и ржавая каска. Т.е. ничего нового найти у старейшины не получится.

Вещи обладают незначительными характеристиками, нож - +5 к наносимому ущербу, каска - +5 к защите, доспех +10 к защите.


ржавый доспех, лабиринты зыби - 7maze.ru   ржавая каска, лабиринты зыби - 7maze.ru

Сундуки с сокровищами

Начал реализовывать сбор вещей из сундуков, для начала нарисовал сундук в двух вариантах: закрытый и открытый
сундуки с сокровищами, открытый сундук, закрытый сундук, лабиринты зыби - 7maze.ru

Думаю как реализовывать сундуки, есть два варианта:

  • как объект
  • как существо
  • Новое

    Начал внедрять новые стены в лабиринте - которые состоят не из одного куба - а прорисованы по-разному.
    Тут же понял, что мой код содержит кучу ошибок, которые пришлось исправлять налету (сейчас код исправлен) и есть живой пример рисования псевдографикой а-ля DOS (кодировка CP866)

    В flash нарисовал такие вот стены:
    набросок новых стен для лабиринтов

    Составные картинки

    Основная мысль - то что собирать образ персонажа из набора дополнительных картинок, которые визуализируют отдельные доспехи и оружие (ну и уникальные образы, пол/возраст персонажа).

    Думаю попробовать реализовывать следующим образом:
    Первым делом грузится основа, затем для загруженного клипа вызывается функция инициализации (интересно можно так напрямую, например mc.initAll()?) с передачей параметров, тех вещей, которые нужно загрузить.

    Т.е. допустим амуниция/оружие рисуется на все кадры, анимация оружия только на режимах боя.

    RSS-материал