Информация

Обсуждало 3 человека

Как же быть?

Логика и программирование
27 декабря 2011 в 12:33:19

Вообщем нужно сделать уровень в игре длинной 2000 блоков размером 50х50. Проблем и тормозов с уровнем нет, так как все блоки в уровне статичные их можно кешировать как Bitmap, но как быть с другими объектами, бонусами например, их же не кешируешь? Ас3.

Обсуждение (вниз)

Не хватает только вашего мнения. Зарегистрируйтесь, чтобы написать!

28 декабря 2011 в 12:03:00

Короче я скачал исходников 6 наверно способа конвертации мувика и массив с битмапами + исходник дракулы и ни в одном не разобрался, но принцип мне понятен. Придется самому написать.

28 декабря 2011 в 08:57:49

PolarisF, а может не надо так мудрить? Попробуй сделать прямо как есть, с векторными мивиками. И посмотри чего получится. Только расставь их по карте примерно так, как будет в игре, а не лепи всё в кучу.

27 декабря 2011 в 17:33:18

Значит я разобрался в том исходнике который мне дал дракула, и понял что он мне не подходит. Т.к как там создается массив с битмапдатами и просто проигрывается, мне же нужно что бы растрировались кадры в самом мувике. Короче я сделал такую функцию:

private function cacheMovieClip(mm:MovieClip)
{
for (var md = 1; md <= mm.totalFrames; md++)
{
mm.gotoAndStop(md);

var bounds:Rectangle = mm.getBounds(mm);

var matrix:Matrix = new Matrix();

matrix.translate(-bounds.x, -bounds.x);

var bitmap:BitmapData = new BitmapData(mm.width, mm.height, true, 0x000000);
bitmap.draw(mm, matrix);

var bmp:Bitmap = new Bitmap(bitmap);
bmp.x = bounds.x;
bmp.y = bounds.y;

mm.removeChildAt(0);

mm.addChild(bmp);
}
}

Короче я думал будет, что я просто переберу все кадру в мивуке, растрирую их, удалю из кадра векторную графу, помещю в кадр растр и у меня получится растровый мувик. Хрен там был. Цикл прошел нормально, запускаю анимацию, и клип опять стал векторным!!! ЧЁ ДЕЛАТЬ!?

27 декабря 2011 в 14:32:34

Отлично, то что надо. Спс.

27 декабря 2011 в 14:06:23


27 декабря 2011 в 12:55:16

Короче мне интересует вопрос как кэшировать анимацию.

27 декабря 2011 в 12:54:38

Вот щас поэкспериментировал, 3000 объектов с логикой, движущиеся - когда они на экране (все в куче) тормозит, когда за экраном - нормально. Объекты в массиве, обход всего массива каждый кадр, проверка столкновений с персонажем.

27 декабря 2011 в 12:51:43

А вообще, флэш вроде без особого труда справится с кучей объектов, находящихся за экраном, т.е. которые не надо рисовать. Если у них нет сложной логики, конечно.

27 декабря 2011 в 12:46:39

2000 объектов в массив? Это слишком много.

27 декабря 2011 в 12:43:51

Динамически создавать и уничтожать?
Запихнуть все бонусы в один массив, а отображаемые - в другой. Периодически обновлять второй массив в зависимости от координат игрока (на координатах кратных 100 точкам, например). Ну это чисто для ускорения, чтоб не проходить каждый цикл всю кучу объектов.

27 декабря 2011 в 12:43:17

Это не важно, главное что они анимированы.

27 декабря 2011 в 12:41:08

А они просто висят в воздухе или падают с врагов?
Fundux.ru v.3.0 © 2006-2021 AleXNoD
Портал русских флеш игр и flash мультов