Godot进行2D游戏开发入门-场景的切换

2023-08-08 12:59:02 浏览数 (3)

加载子场景

当前场景中加载下一个场景,当前场景不销毁

代码语言:javascript复制
func _ready():
	var menu_root = preload("res://scenes/menu.tscn").instantiate()
	self.add_child(menu_root)

或者

代码语言:javascript复制
func _ready():
	var menu_root = load("res://scenes/menu.tscn").instantiate()
	self.add_child(menu_root)

场景的销毁

代码语言:javascript复制
var menu_root = preload("res://scenes/menu.tscn").instantiate()
self.add_child(menu_root)
await await get_tree().create_timer(10.0).timeout
self.remove_child(menu_root)
menu_root.queue_free()

场景的查找

查找所有的子

代码语言:javascript复制
var menu_list = self.get_children()
if (menu_list.size()>0):
    var menu = menu_list[menu_list.size()-1]
    self.remove_child(menu)
    menu.queue_free()

按名称查找

代码语言:javascript复制
var menu = self.get_node("menu")
self.remove_child(menu)
menu.queue_free()

更换场景

销毁所有场景

切换场景,并销毁所有场景

代码语言:javascript复制
get_tree().change_scene_to_file("res://scenes/menu.tscn")

替换当前场景

销毁当前场景,加载新场景

代码语言:javascript复制
var main_root = preload("res://scenes/main.tscn").instantiate()
self.get_parent().add_child(main_root)
self.queue_free()

延迟执行任务

延迟10秒执行

代码语言:javascript复制
await await get_tree().create_timer(10.0).timeout

退出游戏

代码语言:javascript复制
get_tree().quit()

打印当前场景节点树

代码语言:javascript复制
self.print_tree_pretty()

0 人点赞