3

add()在运行时对游戏场景中精灵的渲染顺序进行排序,将对象发布到场景中的最简洁(理想情况下,最有效)的方法是什么?是否有内置属性SpriteComponentSpriteAnimationGroupComponent对象可以接收int指示排序顺序并覆盖隐式排序顺序?我想确认在从头开始实现我自己的 Z 排序算法之前,Flame 中还没有实现一些东西。

谢谢!

4

1 回答 1

5

priority在 Flame中调用 z-index 顺序。如果您在将组件添加到游戏之前知道它的优先级,您可以将命名字段priority发送到构造函数,如下所示:

final myComponent = SpriteComponent(sprite: mySprite, priority: 5);

另一方面,如果您不知道组件将具有什么优先级(或者如果您想在组件的生命周期内更改它),则必须使用类changePriority上的方法FlameGame

class MyGame extends FlameGame {
  ...
}

final myGame = MyGame();
myGame.changePriority(myComponent, 1);

还有一个 on Componentcalled方法changePriorityWithoutResorting,可以在将组件添加到游戏之前使用。但是如果组件已经被添加,这个方法在组件被重新添加到游戏之前不会有任何效果。

于 2021-09-13T09:44:54.230 回答