Заставьте FlxSprite вести себя как дочерний элемент другого FlxSprite

Во Flixel вы не можете добавить FlxSprite к другому, как это можно сделать с Flash. API (Спрайты были подклассами DisplayObject). Поэтому, если вы хотите, чтобы 2 спрайта вели себя как родительский и дочерний, вам все равно придется анимировать их отдельно. Это может стать кошмаром, если вы также используете Tweens.

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

Есть ли способ, чтобы «дочерний» спрайт действовал так, как будто он был добавлен в «родительский», чтобы он автоматически обновлял свою позицию, масштаб и поворот соответственно? Например, во время их FlxGroup функции update()?

Меня интересует HaxeFlixel 3.3.1, хотя это не особо важно, так как это касается всех версий и портов Flixel.

Изменить: я заметил, что HaxeFlixel имеет FlxSpriteGroup, который должен обрабатывать несколько Спрайты. Но это новая функция, и я уверен, что разработчики фликсела используют другие подходы для остальных портов фликселя.


person yannicuLar    schedule 26.02.2015    source источник


Ответы (2)


Доступна ограниченная версия: http://api.haxeflixel.com/flixel/addons/display/FlxNestedSprite.html

person martyman    schedule 03.03.2015
comment
верно, но, как вы сказали, это ограничено. У меня проблемы с масштабированием: groups.google.com/forum/embed/?place=forum/ - person yannicuLar; 04.03.2015

HaxeFlixel предоставляет FlxSpriteGroup и FlxNestedSprite, которые можно использовать для того, чтобы некоторые спрайты вели себя как группа. В обоих подходах у меня возникла проблема с обновлением свойств angle и scale, однако обновление позиции работает нормально.

Если вам не интересно анимировать спрайты по отдельности, и вам нужно рисовать один спрайт поверх другого, stamp() может быть тем, что вам нужно (например, нарисуйте шлем поверх вашего персонажа)

person yannicuLar    schedule 31.03.2015
comment
Вы открывали какие-либо вопросы об угле / масштабе? У меня тоже проблема с масштабом для FlxSpriteGroup. FlxNestedSprite не существует. - person ashes999; 04.04.2015
comment
1) FlxNestedSprite — это дополнительная библиотека, которую вы можете импортировать: flixel-addons github.com/HaxeFlixel/flixel-addons< /а> - person yannicuLar; 05.04.2015
comment
3) Я поделился исправлением, еще не объединенным: github.com/HaxeFlixel/flixel-addons /тянуть/157 - person yannicuLar; 05.04.2015