【问题标题】:Node2D rotation not relative to parentNode2D旋转不相对于父级
【发布时间】:2020-12-23 07:28:16
【问题描述】:

戈多3.2.2

Godot 文档将Node2D.rotation_degrees 定义为“相对于节点的父节点的旋转度数。”

场景.gd:

extends Node2D

func _ready():
    var child = Node2D.new()
    add_child(child)
    child.set_position(Vector2(1, 1))
    child.rotation_degrees = 90
    print(child.get_position())

播放场景。 输出:(1, 1) 预期:(1, -1)

如果我重写孩子的 _draw() 方法使其显示,我可以看到它的绘图上下文围绕它自己的原点旋转。

但是鉴于文档,我希望它的位置和绘图上下文围绕其父级的原点旋转。这似乎没有发生。

我在这里误解了几何的一些基本知识吗?

【问题讨论】:

    标签: 2d godot


    【解决方案1】:

    child.rotation_degrees = 90 行表示无论父级旋转什么,子级都会旋转额外 90 度。

    至于旋转的是什么,这取决于。如果旋转父级,则子级相对于父级旋转。如果您旋转孩子,它会相对于自身旋转,也就是“本地”。

    默认情况下,Node2D.new() 在本地是 centered,因此旋转会使其原地旋转。调用set_position 只会改变它与父级的关系。如果你想改变它的本地位置,你需要translate它。

    【讨论】:

      猜你喜欢
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 2018-07-17
      相关资源
      最近更新 更多