如何在屏幕坐标中定位 Node2D?

问题描述 投票:0回答:1

我想将我的 Node2D 定位在屏幕坐标 x=100,y=200(例如),同时考虑到相机可能已经移动。我很惊讶我不知道该怎么做:)

我找到了很多关于如何在屏幕坐标中获取 Node2D 坐标的文档:

my_node_2d.get_global_transform_with_canvas()

但这不存在:

my_node_2d.set_global_transform_with_canvas(Vector2)

我可能遗漏了一些非常明显的东西,因为我找不到任何关于此的文档/教程/QA。

更新:我不能使用 CanvasLayer,因为我的 Node2D 是播放器,它必须存在于世界中。卷轴在移动,玩家必须随之移动

2d godot
1个回答
0
投票

这是我找到的解决方案:

func set_on_screen_position(node: Node2D, screen_position:Vector2):
    var canvas_position = node.get_canvas_transform().origin
    node.global_position = screen_position - canvas_position

但我不确定它是否会弄乱 Canvas 比例等

© www.soinside.com 2019 - 2024. All rights reserved.