Спрайт класс в 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 и т. Д.

У этого подхода есть некоторые предостережения: "невидимые" спрайты не могут захватывать события мыши, и их ширина и высота не могут быть заданы программно (только путем добавления дочерних элементов в соответствующих позициях).

Другие вопросы по тегам