我真的不了解定位子节点的逻辑.可以说我有一个矩形.如果我没有更改其锚点,则默认情况下子节点将恰好出现在中间.但是如何将它放在矩形的左上边缘呢?还是右下?我试过了
child.zPosition = 1
child.position.y = rect.size.height / 2
rect.addChild(child)
Run Code Online (Sandbox Code Playgroud)
但它不是由Y轴定位在中间.它位于顶部.我应该使用哪些工具来定位父母内部/内部的子节点?
Wan*_*ong 17
SpriteKit中的默认锚点是(0.5,0.5),它是节点/精灵的中心.(0,0)是左下角,(1,1)是右上角.看看这张照片.
选择节点的锚点后,可以将其视为坐标系的原点,其范围是节点的帧大小.位置偏移量由子节点的锚点和其父节点的锚点计算/影响.
例如,(红色)父节点的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)
Run Code Online (Sandbox Code Playgroud)
SpriteKit位置和锚点的更多实验可以在这里找到.
归档时间: |
|
查看次数: |
4148 次 |
最近记录: |