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