【问题标题】:Sprite class in OpenFL (formerly NME) for empty placeholder objects?空占位符对象的 OpenGL(以前的名称)中的 Sprite 类?
【发布时间】:2025-12-07 11:55:02
【问题描述】:

我正在试验HaxeOpenFL,我想知道Sprite 类是否与Unity 中的GameObject 同义。看起来精灵实例有一个层次结构,我想知道这是否可以用来管理对象。

例如:

Game (Sprite / container / no visual representation)
 |--> Grid (Sprite / container / no visual representation)
       |--> Tile (Sprite)
       |--> Tile (Sprite)
       |--> ...
 |--> ...

我对上述假设是否正确,还是应该将 Sprite 类仅扩展用于具有视觉表示的对象?

【问题讨论】:

    标签: sprite game-engine haxe nme openfl


    【解决方案1】:

    如果你只需要一个容器,你应该扩展DisplayObjectContainer。但是对于像Game 这样的抽象事物,我根本不会使用DisplayObject,而是使用自定义类。

    使用从DisplayObject 扩展的类,仅用于应该添加到显示列表 的内容。在您的示例中,Game 不应该是 Sprite,但 TileGrid 可能是。

    【讨论】:

    • 谢谢,我不知道DisplayObjectContainer 类。我拥有 Game 的唯一原因是因为它是由我使用的工具自动生成的,尽管默认情况下它被命名为 Main。我怀疑最好也从DusplayObjectContainer 中得到它。我会尝试一下。
    【解决方案2】:

    嗯,我在我的项目中使用它,所以答案可能是“是”:)

    特别是我使用了一个带有 N 个水平精灵的网格,所以我的等轴测图以正确的从上到下的顺序呈现。我还为我的 HUD 等使用单个容器。

    这种方法有一些注意事项 - “不可见”精灵无法捕获鼠标事件,并且它们不能以编程方式设置其宽度/高度(只能通过在适当的位置添加子元素)。

    【讨论】:

      最近更新 更多