# 1. 节点和功能的关系 - 节点 Node ,用于实现一种功能,例如,Sprite 节点,用于图片的显示 - 一个节点的功能取决于它挂载了哪些子节点,它包含了哪些功能的子节点,就包含了对应子节点表示的功能 - 节点是可选的,可以添加、可以删除 - 先创建一个空的节点,再选择需要的节点 ![Image text](image/node2d-00.JPG) ``` Sprite用来显示一张图片,再给Sprite增加一个刚体 演示: 1 添加一个空的节点Node 2 挂载 Sprite 节点,然后再挂载RigidBody2D刚体节点 3 移除RigidBody2D刚体节点 ``` # 2. Node节点 - Node节点,基类节点,所有节点都会基础Node节点 ![Image text](image/node2d-01.JPG) ``` 1. Pause Mode节点的暂停 get_tree().paused = true 节点的三种可能状态有: Inherit(继承) :处理与否取决于父、祖父等等节点中第一个非 Inherit 状态的节点。 Stop(停止) :无条件停止节点(以及 Inherit 模式的子节点)。暂停时该节点不会进行处理。 Process(处理) :无条件处理节点(以及 Inherit 模式的子节点)。无论暂停与否,该节点都会进行处理。 process方法执行的优先级,对于子节点依然有效 挂载外部的脚本 ``` ``` # 脚本初始化会首先调用这个方法,会在_process()方法之前调用 func _ready(): # get_tree().paused = true pass var count = 0 # 每一帧都会调用这个方法 func _process(delta): count = count + 1 if (count % 60 == 0): print("parent node") pass ``` # 3. CanvasItem节点 - CanvasItem节点,CanvasItem -> Node - Canvas是画布的意思,所以CanvasItem代表了就是可以被绘制节点 - CanvasItem是按树的树的深度优先遍历顺序绘制的 - 默认情况下,子项在其父项的顶部,所以根CanvasItem将被画在所有项的后面 - 可以通过设置CanvasItem的Show Behind Parent来改变最终渲染到屏幕上的画面顺序 ``` 所有2d节点都要继承的节点,设置可视化,设置材质的颜色 ``` # 4. Node2D节点 - Node2D节点,Node2d -> CanvasItem -> Node ``` Node2D节点继承于CanvasItem节点,CanvasItem节点继承于Node节点,所以Node2D节点包括了CanvasItem节点和Node节点的所有功能 Transform ,Node2d节点的基本属性,在后面的脚本编程中,Transform属性是最常用的 表示: - Position 位置 - Rotation 旋转 - Scale 缩放 ```