我用group.get_pressed_button().name 获取了按下的按钮名称,比如名称是“按钮1”,然后通过取字符串和换算,得到下一个按钮的名称是“按钮2”。于是问题来了:怎么把字符串转换成节点对象?像下面这样是不行的:bt = "按钮2" # 这是个字符串,不是对象bt.pressed = true # error 冰蓝圣雪 国际化 11 睡了...
这里我们有一个新方法delete_entities_of_group,所以,需要创建它: func delete_entities_of_group(group_name: String): var entities: Array = get_tree().get_nodes_in_group(group_name) for entity in entities: entity.queue_free() 该函数先是获取所有在group_name的实体,再一个一个删除它们。所以,我...
需要在脚本里打开 tool 模式,然后用 _get_property_list 来设置各个属性的用法。可以手动插入分组属性:类型是 TYPE_NIL,name 就是这个分组显示的名称,usage 需要是 PROPERTY_USAGE_GROUP,hint_string 为空就是后续的所有属性都是该分组里的,非空就是后续的 name 前缀与 hint_string 匹配才算该分组里的。详细可以...
namespace BraveStory { public partial class World : Node2D { private TileMapLayer tileMapLayer; private Player player; private Camera2D camera2d; public override void _Ready() { tileMapLayer = GetNode<TileMapLayer>("TileMapLayer"); player = GetNode<Player>("Player"); camera2d = player.G...
var newName = newScene.SceneFilePath.GetFile().GetBaseName(); if (worldStates.ContainsKey(newName)) { newScene.Call("FromDict", worldStates[newName]); }// 遍历入口点组并更新玩家位置foreach (Node2D node in GetTree().GetNodesInGroup("entryPoints")) { if (node is EntryPoint entry) if ...
for node in node_array: node.add_to_group("Cool_Group") # This has an effect" 这段代码是在讲解在遍历字符串数组和节点数组时的不同行为。让我们逐行解释:for string in string_array: string = "Hello World" # 这没有效果在这里,代码试图遍历一个字符串数组(string_array),并将每个字符串设为 "...
Scene Group:场景对象划分,方便消息分类传递和搜索。 生命周期:_enter_tree---_ready---_exit_tree (instance实例化和free释放) Scene singleton:场景单例(Project Setting中设置,AutoLoad选项添加资源窗口中的全局脚本) GDScript 函数:func name(): 分支:if ...
Fixed: missing binds for getFriendsGroupName(), getFriendsGroupMembersList(), getFriendsGroupIDByIndex(), getFriendsGroupCount(), getFriendMessage(), getFriendCoplayTime(), getFriendCoplayGame(), getCoplayFriendCount(), getCoplayFriend(), getClanTag(), getClanName(), getClanCount(), getCla...
if (body.IsInGroup("Alien") && y_vel == -1 && body is Alien alien) { await ToSignal(GetTree().CreateTimer(0.1f), "timeout"); alien.Reduce_Health(); GetNode<Game>("/root/Game").aliens_alive -= 1; } else if (body.Name == "Fighter" && y_vel == 1) ...
即可自动建立信号处理方法,如_on_[EmitterNode]_[signal_name] #常用函数Node.get.node()用法示例#1获取Button的引用func_ready():get_node("Button")#2填写信号处理方法func_on_Button_pressed():get_node("Label").text="HELLO!"#3处理信号连接func_ready():get_node("Button").connect("pressed",...