手册:方法/信号/API 列表

以下是用于在 GDScript 中访问 Action Game Maker 类的 API 列表。

ObjectVariable/Switch 和 ProjectVariable/Switch API

访问对象变量(VariableSettings 节点)

获取变量数据:$VariableSettings.get_value("VariableDataName")
设置变量数据:$VariableSettings.set_value("VariableName", Value)
检查变量数据是否存在:$VariableSettings.has_value("VariableDataName")
获取 VariableSettings 节点:$GameObject.get_variable_settings()

访问对象开关(SwitchSettings 节点)

获取开关数据:$SwitchSettings.get_value("SwitchDataName")
设置开关数据:$SwitchSettings.set_value("SwitchName", True / False)
检查开关数据是否存在:$SwitchSettings.has_value("SwitchDataName")
获取 SwitchSettings 节点:$GameObject.get_switch_settings()

只读对象变量/开关

以下 ACTION GAME MAKER 变量/开关为只读值,无法通过方法修改。

开关:
is_locked, is_touching_portal
变量:
object_id, stayed_area_id, visible_direction, x_speed, y_speed, player_id, controller_id, taken_damage

访问项目变量

获取项目变量:AGMakerManager.get_project_database_variable("record_name")
通过记录索引获取项目变量:get_project_database_variable_by_idx
设置项目数据库变量:AGMakerManager.update_project_database_variable("VariableName", variable)
通过记录索引设置项目变量:AGMakerManager.update_project_database_variable_by_idx
获取项目变量记录总数:AGMakerManager.get_project_database_variable_record_max

访问项目开关

获取项目开关:AGMakerManager.get_project_database_switch("record_name")
设置项目数据库开关:AGMakerManager.update_project_database_switch("SwitchName", True / False)
通过记录索引获取项目开关:AGMakerManager.get_project_database_switch_by_idx
通过记录索引设置项目开关:AGMakerManager.update_project_database_switch_by_idx
获取项目开关记录总数:AGMakerManager.get_project_database_switch_record_max


数据库 API

访问用户数据库

获取用户数据库:AGMakerManager.get_project_database_plain("database_name", "record_name", "column_name")
通过记录索引获取用户数据库:get_project_database_plain_by_idx
设置用户数据库变量:AGMakerManager.update_project_database_plain("DatabaseName", "RecordName", "ColumnName", variable)
通过记录索引设置用户数据库变量:AGMakerManager.update_project_database_plain_by_idx
获取用户数据库记录总数:AGMakerManager.get_project_database_plain_record_max


访问其他数据库

获取声音数据库:AGMakerManager.get_project_database_sound("record_name", "column_name")

:small_blue_diamond: 通过记录索引获取数据的方法

装备类型:AGMakerManager.get_project_database_equipment_type_by_idx
属性类型:AGMakerManager.get_project_database_attribute_type_by_idx
用户自定义类型:AGMakerManager.get_project_database_custom_type_by_idx
音频数据库:AGMakerManager.get_project_database_sound_by_idx

:small_blue_diamond: 获取记录总数的方法

装备类型:AGMakerManager.get_project_database_equipment_type_record_max
属性类型:AGMakerManager.get_project_database_attribute_type_record_max
用户自定义类型:AGMakerManager.get_project_database_custom_type_record_max
音频数据库:AGMakerManager.get_project_database_sound_record_max


相机 API

:small_blue_diamond: 生成 CameraTargetSettings

var camera_target_settings = CameraTargetSettings.new()
camera_target_settings._target_id = "Any ID"
camera_target_settings._is_active_target = true
camera_target_settings._visible_size = Vector2(100, 100)
add_child(camera_target_settings)
camera_target_settings.position = Vector2(100, 100)

:small_blue_diamond: 将 CameraTargetSettings 注册到 ZoomCamera2D

$ZoomCamera2D.regist_target(camera_target_settings.get_instance_id())

:small_blue_diamond: 从 ZoomCamera2D 注销 CameraTargetSettings

$ZoomCamera2D.unregist_target(camera_target_settings.get_instance_id())


FaceDirectionSettings API

  • set_face_direction(angle, flip_flag):第一个参数:朝向角度,第二个参数:是否翻转
  • get_face_direction():返回当前的朝向角度

其他 AGMakerManager 方法

:small_blue_diamond: 将 GDScript 生成的游戏对象注册到 AGMakerManager

AGMakerManager.regist_game_object("TargetNode")

  • AGMakerManager 是管理 ACTION GAME MAKER 各个方面的系统。由于它也负责追踪 GameObject 的生命周期,因此任何在 AGMakerManager 外部创建的对象都必须手动注册到该系统中。

:small_blue_diamond: 场景切换

get_current_game_scene()

  • 返回当前运行的 GameScene。返回类型为 GameScene

示例代码:

func _ready() -> void:
	var game_scene = AGMakerManager.get_current_game_scene()
	print("*** 获取当前场景 = ", game_scene.name)
	pass

信号

本节列出了 ACTION GAME MAKER 中各种操作期间发出的信号。

:small_blue_diamond: GameObject

保存/加载信号

执行保存时:on_saved(int slot, Object object)
执行加载时:on_loaded(int slot, Object object)


:small_blue_diamond: AGMakerManager

保存/加载信号

执行保存时:on_saved(int slot)
执行加载时:on_loaded(int slot)

场景切换相关信号

game_scene_about_to_change(current: Object)
此信号在场景切换执行之前发出。
参数 current 接收切换前的 GameScene

game_scene_changed(current: Object)
此信号在场景切换完成后发出。
参数 current 接收切换后的 GameScene

注意:由于 Godot 的规范,参数类型为 Object
在使用时,请在用户端将其转换为 GameSceneNode2D

示例代码:

func _ready() -> void:
	# 连接到场景切换前发出的信号
	AGMakerManager.game_scene_about_to_change.connect(_on_before_change_scene)
	# 连接到场景切换后发出的信号
	AGMakerManager.game_scene_changed.connect(_on_after_change_scene)
	pass

func _on_before_change_scene(current_scene: GameScene):
	print("*** 场景切换前 = ", current_scene.name)
	pass

func _on_after_change_scene(current_scene: GameScene):
	print("*** 场景切换后 = ", current_scene.name)
	pass

2 个赞