我想知道我的设置ball.position函数,重点是将球的点设置为其他spritenode(在左/中/右侧),我试图编写我自己的函数,但它充满了bug,(它是评论),然后审查开发人员lib的。我找到了anchorPoint到父位置,但它不起作用,我不确切知道如何设置球的当前父级。我会非常感谢你的一些建议。
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);
}
}
答案 0 :(得分: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;
希望这就是你的意思。