gpt4 book ai didi

swift - 如何将 child SKSpriteNode 定位在他们的 parent 里面

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:58 25 4
gpt4 key购买 nike

我不是很懂子节点定位的逻辑。可以说我有一个矩形。如果我没有改变它的 anchor ,默认情况下子节点会出现在中间。但是如何将它定位在矩形的左上边缘呢?还是右下角?我试过了

 child.zPosition = 1
child.position.y = rect.size.height / 2
rect.addChild(child)

但它并没有被Y轴定位在中间。它在顶部的某个地方。我应该使用什么工具将子节点定位在其父节点周围/内部?

最佳答案

SpriteKit 中默认的 anchor 是 (0.5, 0.5),这是一个节点/ Sprite 的中心。 (0, 0) 是左下角,(1, 1) 是右上角。看this picture .

enter image description here

选择节点的 anchor 后,您可以将其作为坐标系的原点,其范围是节点的框架大小。位置偏移由 child 的 anchor 及其父 anchor 计算/影响。

例如,(红色)父节点 rect 的大小为 (100, 100),(绿色)子节点 child 的大小为 (50, 50)尺寸。将子位置设置在父坐标系中的 (-25, 25) 将产生以下结果。

// parent node
let parent = SKSpriteNode(color: UIColor.redColor(), size: CGSizeMake(100.0, 100.0))
parent.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));
self.addChild(parent)

// child node
let child = SKSpriteNode(color: UIColor.greenColor(), size: CGSizeMake(50.0, 50.0))
child.zPosition = 1
child.position = CGPointMake(-parent.size.width/4, parent.size.height/4) // (-25, 25))
parent.addChild(child)

enter image description here

更多SpriteKit位置和 anchor 的实验可以找here .

关于swift - 如何将 child SKSpriteNode 定位在他们的 parent 里面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33099051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com