godot4制作2D游戏13———用户关卡配置
创建Spwan场景
创建一个新场景,只需要一张图片代表Player
- 添加脚本player_spawn.gd
1
2
3
4
5
6
7
8
9
10extends Node2D
func _ready() -> void:
visible = false
if not PlayerManager.player_spawned:
PlayerManager.set_player_position(global_position)
PlayerManager.player_spawned = true
print(global_position)
pass
- 添加脚本player_spawn.gd
修改PlayerManager脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31extends Node
const PLAYER = preload("res://Player/player.tscn")
var player: Player
var player_spawned: bool = false
func _ready() -> void:
add_player_instance()
await get_tree().create_timer(0.2).timeout
player_spawned = true
pass
func add_player_instance() -> void:
player = PLAYER.instantiate()
add_child(player)
func set_player_position(_pos: Vector2) -> void:
player.global_position = _pos
func set_as_parent(_p: Node2D) -> void:
if player.get_parent():
player.get_parent().remove_child(player)
_p.add_child(player)
pass
func unparent(_p: Node2D) -> void:
_p.remove_child(player)
passplayground添加脚本level.gd
1
2
3
4
5
6
7class_name Level extends Node2D
func _ready() -> void:
self.y_sort_enabled = true
PlayerManager.set_as_parent(self)
pass调整Autoload加载顺序
- player初始化时依赖PlayerHud,将其提前
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Have a nice day!!