Godot存档

238 阅读5分钟

image.png

🎨 CanvasLayer 节点

  • 作用CanvasLayer 用于创建独立的 2D 渲染层,使其子节点与主场景的视图分离。
  • 功能:通过设置不同的 layer 属性,实现多层次的渲染效果。
  • 适用场景:适用于制作 HUD(如血条、分数)、暂停菜单、背景等。

🧱 Control 节点

  • 作用Control 是构建用户界面的基础节点,提供了丰富的布局和交互功能。
  • 功能:支持锚点(Anchors)、边距(Margins)、大小标志(Size Flags)等,用于实现响应式布局。
  • 适用场景:适用于制作按钮、标签、输入框等交互元素。

🧱 PanelContainer 节点

  • 作用:为子控件提供背景样式,通常用于为 UI 元素添加背景框架或轮廓。
  • 功能:使用 StyleBox 绘制背景,并将子控件扩展以填充整个区域。
  • 适用场景:创建具有自定义背景样式的面板,例如带有圆角或阴影的面板。

🏷️ Label 节点

  • 作用:用于显示文本信息。
  • 功能:支持多种字体、颜色和对齐方式,用于显示游戏中的提示、分数、名称等。
  • 适用场景:显示游戏中的文本信息,如分数、提示、名称等。

⌨️ LineEdit 节点

  • 作用:提供一个单行文本输入框。
  • 功能:允许用户输入和编辑一行文本,支持多种内置快捷键。
  • 适用场景:用于用户名、密码、搜索框等单行文本输入。

📦 HBoxContainer 节点

  • 作用:水平排列其子控件的容器。
  • 功能:自动将子控件水平排列,适用于需要水平布局的场景。
  • 适用场景:创建工具栏、按钮组、菜单项等水平布局。

🎨 ColorPickerButton 节点

  • 作用:一个按钮,点击后弹出颜色选择器。
  • 功能:允许用户选择颜色,常用于设置颜色主题或绘图工具。
  • 适用场景:颜色选择器、绘图工具、主题设置等。

🔘 Button 节点

  • 作用:一个可点击的按钮。
  • 功能:用于触发事件或操作,支持多种状态(正常、按下、悬停等)。
  • 适用场景:菜单按钮、提交按钮、切换按钮等。

image.png

image.png

image.png

在 Godot 引擎中,pressedButton 节点的一个信号,用于在按钮被点击时触发特定的操作。当用户点击按钮时,pressed() 信号会被发射,通常用于执行如切换场景、提交表单或触发动画等动作。

🔍 功能与用途

  • 触发操作:当按钮被点击时,pressed() 信号会被发射,连接到该信号的函数会被调用。
  • 支持多种输入方式:除了鼠标点击外,pressed() 信号还可以响应键盘上的 Enter 或 Space 键。
  • 连接信号:可以通过 Godot 编辑器的 Node 面板,或在脚本中使用 connect() 方法,将按钮的 pressed() 信号连接到自定义函数。
extends CanvasLayer

# 导出变量,可在编辑器面板中关联节点
@export var player_name : LineEdit   # 用于输入玩家姓名的文本编辑框
@export var player_color : ColorPickerButton  # 用于选择玩家颜色的拾色器按钮

# 加密/解密配置文件使用的密钥
var key = "SimpleSaveLoad"

# 保存配置到文件的函数
func _save() -> void:
	# 创建新的ConfigFile对象(用于读写配置文件)
	var config = ConfigFile.new()
	
	# 将玩家姓名存储到配置文件的"Settings"节下的"name"键
	config.set_value("Settings", "name", player_name.text)
	
	# 将玩家颜色存储到配置文件的"Settings"节下的"color"键
	config.set_value("Settings", "color", player_color.color)
	
	# 将配置数据加密保存到用户目录的settings.cfg文件,使用预设密钥
	config.save_encrypted_pass("user://settings.cfg", key)
	
	# 在控制台输出保存成功信息(调试用)
	print("saved!")

# 从文件加载配置的函数
func _load() -> void:
	# 创建新的ConfigFile对象
	var config = ConfigFile.new()
	
	# 尝试加载加密配置文件,获取操作结果代码
	var result = config.load_encrypted_pass("user://settings.cfg", key)
	
	# 检查文件是否成功加载
	if result == OK:  # OK常量表示成功(值为0)
		# 从配置读取玩家姓名并更新到文本编辑框
		player_name.text = config.get_value("Settings", "name")
		
		# 从配置读取玩家颜色并更新到颜色选择按钮
		player_color.color = config.get_value("Settings", "color")
	else:
		# 加载失败时在控制台输出错误信息
		printerr("error on load!")

.cfg 文件(Configuration File)✅ 优点

  1. 易于编辑和阅读
    .cfg 文件通常采用简单的键值对结构,格式直观,便于用户和开发者理解和修改。例如:

    ini
    复制编辑
    [Settings]
    username=admin
    password=secret
    
  2. 灵活性高
    用户可以在不修改程序代码的情况下,通过修改 .cfg 文件来调整程序的行为和设置,提高了程序的适应性和灵活性。

  3. 可维护性强
    将配置信息与代码分离,使代码更易于维护和理解。开发人员可以专注于代码逻辑,而不必关心具体的配置细节。

  4. 可移植性好
    通过修改 .cfg 文件中的配置项,可以轻松地将程序部署到不同的环境中,而无需修改代码本身。这对于跨平台应用开发尤为重要。


.cfg 文件(Configuration File)❌ 缺点

  1. 格式不统一
    .cfg 文件没有固定的格式标准,不同的软件可能采用不同的格式来存储配置信息,这可能导致兼容性问题和维护困难。
  2. 安全性问题
    如果 .cfg 文件包含敏感信息(如密码、密钥等),需要确保其安全性,防止未经授权的访问和修改。建议对敏感信息进行加密存储或使用安全的配置管理工具。
  3. 错误处理复杂
    在读取和解析 .cfg 文件时,可能会遇到格式错误或内容不一致的情况,需要进行错误处理和验证,以确保配置的正确性和完整性。

文档:docs.godotengine.org/zh-cn/4.x/i…