在 spritekit 中使用 anchorPoint 到每个节点
Posted
技术标签:
【中文标题】在 spritekit 中使用 anchorPoint 到每个节点【英文标题】:Using anchorPoint in spritekit to each node 【发布时间】:2014-01-27 08:36:20 【问题描述】:我想知道我的设置 ball.position 函数,重点是将球的点设置到其他 spritenode(左/中/右侧),我尝试编写自己的函数,但它充满了错误,(它是评论),接下来在审查开发人员库之后。我找到了父位置的锚点,但它不起作用,我不知道如何为球设置当前父级。我将非常感谢您的一些建议。
if (ball.position.y < block.position.y +10 && ball.position.y > block.position.y -10)
midX = CGRectGetMidX(self.frame);
side = block1.size.width/2;
if (emitter.position.x < midX - side+5)
// fixedEmitterPos = emitter.position.x+side;
ball.anchorPoint = CGPointMake(0,0.5);
if (emitter.position.x > midX + side-5)
// fixedEmitterPos = emitter.position.x-side;
ball.anchorPoint = CGPointMake(1,0.5);
if (emitter.position.x == 160)
// fixedEmitterPos = emitter.position.x;
ball.anchorPoint = CGPointMake(0.5,0.5);
【问题讨论】:
什么是block
? emitter
是什么? block1
?后期场景结构
【参考方案1】:
我不知道您的问题到底是什么,但要更改您的锚点,您不会更改父节点中的任何内容。例如,如果锚点是
ball.anchorPoint = CGPointMake(0.5,0.5);
锚点正好在中间,如果你改变球的位置,比如:
ball.position == CGPointMake(50,50);
球的中心将正好在那个点 (50, 50)。
但如果锚点是:
ball.anchorPoint = CGPointMake(1, 1);
然后将位置更改为:
ball.position == CGPointMake(50,50);
球的中心将在
X = 50 - (ball width / 2)
Y = 50 - (ball height / 2)
如果你想根据其他精灵节点设置球的位置,你可以这样做:
//Attach left centre side of ball to other sprite:
ball.anchorPoint = CGPointMake(0, 0.5);
ball.position.x == otherSprit.position.x + otherSprit.size.with;
ball.position.y == otherSprit.position.y;
//Attach right centre side of ball to other sprite:
ball.anchorPoint = CGPointMake(1, 0.5);
ball.position.x == otherSprit.position.x;
ball.position.y == otherSprit.position.y;
希望这就是你想要的。
【讨论】:
以上是关于在 spritekit 中使用 anchorPoint 到每个节点的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Xcode 6 Playground 中使用 SpriteKit