【发布时间】:2013-04-24 19:47:48
【问题描述】:
我正在尝试水平翻转精灵,即
sprite.scaleX = -1;
我注意到精灵在其左下角翻转。但是,由于我不想弄乱精灵的位置(我希望精灵留在原来的位置),所以我尝试将其锚点设置为 (1,0)
sprite.anchorPoint = ccp(1,0);
我的理由是这样的:
由于精灵应该围绕anchorPoint 翻转,如果我将anchorPoint 设置为其右下角,那么该角将成为更改后精灵的“左下角”;我应该能够使用新的anchorPoint 移动精灵,就像使用anchorPoint (0,0) 的普通精灵一样。
但显然它并没有像我预期的那样工作。我错过了什么?
编辑
我真正想做的是翻转一个精灵,然后能够通过左下角控制它的位置 - 以及我看到的精灵的左下角。我不认为我完全理解 scaleX = -1 是如何与锚点相关的。如果有人可以向我解释这些参数背后的概念,那将对我有很大帮助。
【问题讨论】:
-
为什么不使用 sprite.flipX?
-
@LearnCocos2D 我确实尝试过,但没有效果。我猜这个精灵包含几个节点,而 FlipX 只处理单个纹理
-
你也可以使用 0,0 锚点,然后在 position.x 中添加 contentSize.width 就可以达到同样的效果(原点在右下角)
-
@LearnCocos2D 这意味着打破我现有的一些实现,即假设精灵锚定在 (0,0);换句话说,我无法编写处理这种情况的通用函数。
标签: ios objective-c cocos2d-iphone