画布层
Viewport(视窗)和 Canvas Item(画布项)
CanvasItem is the base for all 2D nodes, be it regular
Node2D, or Control
- Parallax Backgrounds(视差背景) : 比场景其他部分移动得慢的背景.
- UI: Think of a user interface (UI) or Heads-up display (HUD) superimposed on our view of the game world. We want a life counter, score display and other elements to retain their screen positions even when our view of the game world changes.
- Transitions(转场) : 我们应该希望用于转场的效果(淡入淡出之类的东西)也保持在固定的位置.
如何在单个场景树中解决这些问题?
CanvasLayer
CanvasLayer , 它是一个节点, 为所有子代和孙代添加一个单独的2D渲染层.Viewport的子节点默认在图层 “0 “ 处绘制, 而CanvasLayer将在任何数字层处绘制. 数字较大的图层将绘制在数字较小的图层之上.CanvasLayers也有自己的变换, 不依赖于其他层的变换. 这使得当我们对游戏世界的观察发生变化时,UI可以固定在屏幕空间中. 比如说创建Parallax Background(视差背景). 这可以通过层为 “-1” 的CanvasLayer完成. 带有分数, 生命计数器和暂停按钮的屏幕也可以创建在编号为 “1” 的层中. 下面是它的图示: CanvasLayer 独立于树顺序, 它们仅依赖于它们的层数, 因此可以只在需要时让它们实例化. 注解 后面 . 二维节点也有控制其绘图顺序的属性(参考 Node2D.z_index ).
