
Flixel обновился

Сейчас сижу, разбираюсь. Вот что пока заметил:
- Добавлены плагины. Плагины можно писать самому, расширяя класс FlxBasic (тоже новый класс)
- Добавлена поддержка нескольких камер
- Можно записывать игровой процесс, мышь, а потом их воспроизводить
- Метод render переименован в draw
- Свойство объекта «fixed» переименовано в «immovable»
- Метод «createGraphic» переименован в «makeGraphic»
- Вместо методов hitTop, hitSide, hitBottom введена новая система. Добавлено свойство touching:uint — в нем устанавливаются биты, соответствующие направлению касания (LEFT, RIGHT, UP, DOWN, ANY, NONE, CEILING = UP, FLOOR = DOWN, WALL = LEFT | RIGHT). Чтобы проверить, что произошло касание, нужно вручную вызвать метод «justTouched» (проверить, что объект только что коснулся) или «isTouching» (объект касается) в update() методе. Например, if (isTouching(LEFT)) ...
- Объектам добавлено свойство «elasticity» — по-умолчанию равно 0 (нулю). Если отлично от 0, то объект при коллизиях будет отскакивать с силой elasticity
- Добавлена сортировка членов группы по любому параметру (наконец-то можно делать игры с z-сортировкой, как в FlashPunk'e!)
- Много методов и классов добавлено для дебаггинга
- Объекты теперь можно двигать по заданному пути
- buffer типа BitmapData, в который раньше копировались все объекты при рендеринге, из класса FlxG перенесен в класс FlxCamera. Теперь каждая камера имеет свой буфер и делает рендеринг в него
- В FlxCamera добавлены способы слежения камеры за объектом: STYLE_PLATFORMER (мертвая зона камеры узкая, но высокая), STYLE_TOPDOWN (мертвая зона — квадрат среднего размера вокруг объекта), STYLE_TOPDOWN_TIGHT (мертвая зона — квадрат маленького размера вокруг объекта), STYLE_LOCKON (у камеры нет мертвой зоны). Мертвая зона — это прямоугольная область вокруг объекта слежения, в рамках которой камера будет следовать за объектом.
Вот нашел описание камер на flixel.org/features.html:
Наличие множества камер сделано для одновременного слежения за несколькими объектами. По-умолчанию, создается одна камера с размерами окна Flash плеера. Можно заменить эту камеру или добавить еще камер для создания эффектов «разделения экрана» или «картинка в картинке», или даже мини-карт. Каждая камера — это независимый объект с собственным зумом, цветовой гаммой, вращением. И, наконец, каждый объект в игре имеет собственный список камер, поэтому легко можно заставить показывать некоторые объекты только в некоторых камерах.
Прошу сильно не пинать, если чего-то ещё не увидел. Оригинал поста — blog.drderico.com/flixel-obnovilsya/
P.S. Вот вроде разобрался как делать собственный рендеринг в буфер:
Допустим, было так (на примере v2.35):
override public function render():void
{
FlxG.buffer.copyPixels(...);
}
В v2.5 будет так:
override public function draw():void
{
if(cameras == null)
cameras = FlxG.cameras;
var camera:FlxCamera;
var i:uint = 0;
var l:uint = cameras.length;
while(i < l)
{
camera = cameras[i++];
if(!onScreen(camera))
continue;
camera.buffer.copyPixels(...);
}
}
- +9
- DrDerico
Комментарии (7)
Я работал с версией 2.42.
И раньше можно было сортировать по любому параметру. Правда функцию пришлось бы свою писать.
habrahabr.ru/blogs/Flash_Platform/119039/