Ios (Cocos2D)雪碧没有完美地坐在其他雪碧的上面?
我的应用程序有点奇怪。我肯定已经看过这条线无数次了,我发誓我没有看到任何问题。几乎只需点击一个按钮,这段代码就会被执行,精灵a应该位于精灵B之上 不,我不能只对这个地方进行设置位置,因为在动画中,精灵A将与精灵B一起移动 所以这里发生的事情是,精灵A最终比精灵B的顶部高出了30个像素。我不知道这是为什么这是我执行此操作的代码:Ios (Cocos2D)雪碧没有完美地坐在其他雪碧的上面?,ios,animation,cocos2d-iphone,ccsprite,Ios,Animation,Cocos2d Iphone,Ccsprite,我的应用程序有点奇怪。我肯定已经看过这条线无数次了,我发誓我没有看到任何问题。几乎只需点击一个按钮,这段代码就会被执行,精灵a应该位于精灵B之上 不,我不能只对这个地方进行设置位置,因为在动画中,精灵A将与精灵B一起移动 所以这里发生的事情是,精灵A最终比精灵B的顶部高出了30个像素。我不知道这是为什么这是我执行此操作的代码: spriteA.position = ccp(cgpoint.x , spriteB.position.y + spriteB.boundingBox.size.heig
spriteA.position = ccp(cgpoint.x , spriteB.position.y + spriteB.boundingBox.size.height/2 + spriteA.contentSize.height/2);
这里发生的事情是,我将sprite A的X位置设置为一个与这个问题无关的CG点,但我将Y位置设置为sprite B的当前位置,然后我加上sprite高度的一半来说明锚定点问题,最后,我添加了spriteA的一半高度,以便在动画中它可以完美地位于spriteB的顶部
有什么原因导致它不能像我希望的那样工作吗
谢谢 如果要设置B精灵的顶部,应注意精灵的z顺序。如果A有更多的z值,当A和B具有相同的位置和锚定点时,A将位于B的顶部 可以在添加子对象时设置z值,如下所示:
[self addChild:spriteA z:1 tag:<tagValue int>];
[self addChild:spriteB z:0 tag:<tagValue int>];
[self addChild:spriteA z:1标记:];
[self addChild:spriteB z:0标记:];
一个精灵使用boundingBox,另一个精灵使用contentSize:
spriteB.boundingBox.size.height/2 + spriteA.contentSize.height/2
您的spriteA是否有可能缩小尺寸?Z值不是问题所在。这与精灵的定位有关。它应该看起来像精灵B位于精灵A的顶部。您是否正在对精灵B运行某些操作。。如果是,请在定位之前停止。是的,这是我的问题!真不敢相信我以前没见过!:)