以下是用于在 GDScript 中访问 Action Game Maker 各类的函数方法列表。
变量 / 开关 方法
| 项目 | 方法 |
|---|---|
| 获取变量数据 | $“../VariableSettings”.get_value(“VariableDataName”) |
| 获取开关数据 | $“../SwitchSettings”.get_value(“SwitchDataName”) |
| 检查变量是否存在 | $“../VariableSettings”.has_value(“VariableDataName”) |
| 检查开关是否存在 | $“../SwitchSettings”.has_value(“SwitchDataName”) |
| 设置变量数据 | $“../VaribleSettings”.set_value(“VariableName”, Value) |
| 设置开关数据 | $“../SwitchSettings”.set_value(“SwitchName”, True / False) |
| 连接信号 | custom_signal.connect(Callable(GameObject 实例, “receive_signal”)) |
| 获取 VariableSettings 节点 | $“../GameObject”.get_variable_settings() |
| 获取 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_plain(“database_name”, “record_name”, “column_name”) |
| 获取项目变量 | AGMakerManager.get_project_database_variable(“record_name”) |
| 获取项目开关 | AGMakerManager.get_project_database_switch(“record_name”) |
| 获取音频数据库 | AGMakerManager.get_project_database_sound(“record_name”, “column_name”) |
| 设置用户数据库变量 | AGMakerManager.update_project_database_plain(“DatabaseName”, “RecordName”, “CplumnName”, variable) |
| 设置项目数据库变量 | AGMakerManager.update_project_database_variable(“VariableName”, variable) |
| 设置项目数据库开关 | AGMakerManager.update_project_database_switch(“SwitchName”, True / False) |
通过记录索引获取数据的方法
get_project_database_plain_by_idx:用户数据库get_project_database_equipment_type_by_idx:装备类型get_project_database_attribute_type_by_idx:属性类型get_project_database_custom_type_by_idx:用户自定义类型get_project_database_sound_by_idx:音频数据库get_project_database_variable_by_idx:项目变量get_project_database_switch_by_idx:项目开关
通过记录索引更新数据的方法
update_project_database_plain_by_idx:用户数据库update_project_database_variable_by_idx:项目变量update_project_database_switch_by_idx:项目开关
获取记录数量的方法
get_project_database_plain_record_max:用户数据库get_project_database_equipment_type_record_max:装备类型get_project_database_attribute_type_record_max:属性类型get_project_database_custom_type_record_max:用户自定义类型get_project_database_sound_record_max:音频数据库get_project_database_variable_record_max:项目变量get_project_database_switch_record_max:项目开关
摄像机相关方法
生成 CameraTargetSettings
var camera_target_settings = CameraTargetSettings.new()
camera_target_settings._target_id = “任意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)
将 CameraTargetSettings 注册到 ZoomCamera2D
$ZoomCamera2D.regist_target(camera_target_settings.get_instance_id())
从 ZoomCamera2D 取消注册 CameraTargetSettings
$ZoomCamera2D.unregist_target(camera_target_settings.get_instance_id())
其他 AGMakerManager 方法
将通过 GDScript 生成的 GameObject 注册到 AGMakerManager
AGMakerManager.regist_game_object(“TargetNode”)
场景切换
get_current_game_scene()
- 返回当前运行中的 GameScene,返回类型为 GameScene。
示例代码:
func _ready() -> void:
var game_scene = AGMakerManager.get_current_game_scene()
print("*** 当前场景 = ", game_scene.name)
pass
信号
GameObject
保存 / 读取 信号
on_saved(int slot, Object object)
on_loaded(int slot, Object object)
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。
在使用时,请在用户侧将其转换为 GameScene 或 Node2D。
示例代码:
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