我现在场景转换时角色只会到一开始默认的位置
我也试过在场景(Level)里添加$Player.start($Position2D.position)来定位,但却会报错
虽然群里回答过了
注意global_position和position的使用,global_position 相对于画布原点的绝对坐标,position只是相对于父节点的坐标(如果父节点就在画布原点,那么子节点的position等于global_position)
global_position
position
Life 谢了,不过现在一旦运行游戏,角色就会直接出现在被定位的位置而非默认位置,但当死亡后又能重生到默认位置或检查点,我在想这是不是因为我直接把player.gd里的func start(pos): position =pos调用到场景的ready()里的问题,以及我该怎么处理一个场景有多个需要在传送时定位的地方,得多用几个position2D并改成 func start(pos2):position = po2这样的格式吗?
你既然在player.gd里定义了start(pos):position = pos,那就在要转换位置的时机调用start(新的目标位置) 至于目标位置的获取,既可以从多个预先定义好的Position2D节点取,也可以定义一个字典存储var targets = {"检查点1":vector2(100,100), "门":vector2(200,200)},"玩家起始点":vector2(0,0)}在需要时如切换关卡时,根据关卡信息重新更新targets里某些位置的的坐标
start(pos):position = pos
start(新的目标位置)
var targets = {"检查点1":vector2(100,100), "门":vector2(200,200)},"玩家起始点":vector2(0,0)}