Спрайт класс в OpenFL (ранее NME) для пустых объектов-заполнителей?
Я экспериментирую с Haxe и OpenFL, и мне интересно, если Sprite
класс является синонимом GameObject
в единстве. Кажется, что экземпляры спрайтов имеют иерархическую структуру, и мне интересно, можно ли это использовать для управления объектами.
Например:
Game (Sprite / container / no visual representation)
|--> Grid (Sprite / container / no visual representation)
|--> Tile (Sprite)
|--> Tile (Sprite)
|--> ...
|--> ...
Правильно ли я с вышеуказанным предположением, или если Sprite
класс будет расширен чисто для объектов с визуальным представлением?
2 ответа
Если вам нужен только контейнер, вы должны продлить DisplayObjectContainer
, Но для абстрактных вещей, таких как Game
Я бы не использовал DisplayObject
На всех, кроме пользовательских классов.
Используйте классы, начиная с DisplayObject
только для вещей, которые должны быть добавлены в список отображения. В вашем примере Game
не должно быть Sprite
, но Tile
а также Grid
вероятно, да.
Ну, я использую это в своем проекте, так что, вероятно, ответ "да":)
В частности, я использую сетку с N горизонтальными спрайтами, поэтому моя изометрическая карта отображается в правильном порядке сверху вниз. Я также использую один контейнер для моего HUD и т. Д.
У этого подхода есть некоторые предостережения: "невидимые" спрайты не могут захватывать события мыши, и их ширина и высота не могут быть заданы программно (только путем добавления дочерних элементов в соответствующих позициях).