如何在iPhone的cocos2d中水平翻转精灵?

5

我只知道CCNode的旋转属性可能与此有关。但是我想水平翻转一个精灵,而不是旋转。

4个回答

13

被接受的答案是错误的(或过时的)。你实际上应该使用:

sprite.flipX=YES;

sprite.flipX=NO;

将其反转


1
请注意,Sergio的答案适用于没有flip方法的Node。 - TigerCoding
@TigerCoding:谢谢——同时也要注意,根据你想要的结果,scaleX是翻转的完全可接受的方式(请参见我的修改后的答案)。 - sergio

12

如果您想水平翻转一个CCNode,您可以这样做:

sprite.scaleX *= -1;

(或者: sprite.scaleX = -sprite.scaleX);如果你的精灵一开始没有缩放,你可以简单地这样做:

sprite.scaleX = -1;
CCSprite 类有一个 flipX / flipY 方法,可能会满足您的需要。请注意以下行为差异:注释

@note 翻转不会翻转精灵的任何子精灵,也不会更改锚点。

如果您需要这样做,可以尝试将 CCNode 的 scaleX 属性取反:sprite.scaleX *= -1.0;


很高兴能够帮到你。如果所提供的解决方案有效,请不要忘记接受答案... - sergio
@simple-thomas:抱歉,但我的回答既不过时也不是错误的。根据您想要的结果,scaleX 是完全可接受的翻转方式(请参见我的修改后的答案)。无论如何,OP提到了CCNode,这应该排除使用flipX--尽管如此,我还是提到了这种方法适用于CCSprite。谢谢。 - sergio

1

YOU CAN TRY THIS :

CCSprite* heroSprite = (CCSprite*) _character.children[0];

然后以heroSprite为例:
    heroSprite.flipX = YES;

它适用于 Node。


1
在当前版本的cocos2d-js(3.8)中: 尝试,

sprite.flippedX = true; //for flipping horizontally.
sprite.flippedY = true; //for flipping vertically.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接