跳转到内容

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.


华夏公益教科书