Godot 游戏引擎指南/操作场景树
外观
因此,您可以在编辑器中添加、重命名、移动和删除节点。但是如何使用代码来操作呢?这是一个非常重要的操作,但并不明显该如何实现。
以下是如何创建子弹、将其添加到场景中,并在 10 秒后删除它。
- player.gd
extends KinematicBody2D
func _physics_process(delta):
if Input.is_action_just_pressed("shoot"):
# Create bullet and add it as a child of its parent:
var bullet=preload("res://bullet.tscn").instance()
get_parent().add_child(bullet)
- bullet.gd
extends Area2D
var timer:=0.0
var dir = 1 # Right = 1, Left = -1
func _physics_process(delta):
# Increase the timer
timer+=delta
if timer >= 10:
# Ten seconds have passed - delete on next frame
queue_free()
position.x+=(5 * dir) *delta
queue_free(): 在下一帧或节点脚本执行完毕后删除节点。
add_child(node: Node): 将 node
作为调用 add_child()
的节点的子节点添加,前提是 node
还没有父节点。
如何关闭您的游戏?如何正确地暂停/恢复您的游戏?
# Remember: call "get_tree()" before calling any of these
# Quit the game/app
get_tree().quit()
# Pause
get_tree().paused=true # Or "false" to unpause
# Pausing stops "_physics_process()".
# It also stops "_process()" and "*_input()" if pause mode is not "pause_mode_process" for the node.