将CCSprite添加到图层后水平翻转

4
我正在为一个应用程序创建一个鱼,它会在屏幕上随机游动到不同的位置。在鱼开始游向下一个位置之前,它会旋转到起始点和目标点之间的角度。
我尝试弄清楚的是:如果 (target.x < start.x),那么我需要水平翻转精灵。
问题是,在我创建精灵并将其 addChild 到图层后,我无法使用 [sprite setFlipX] 设置精灵的 flipX 属性。
setFlipX 在精灵添加到图层后被锁定了吗?我该怎么解决这个问题?我的唯一解决方案是进行动画吗?

我没有想到 FlipX 被锁定了。 - Almo
只有在精灵添加到图层之前翻转纹理,添加到图层后不会翻转。 - Matisse VerDuyn
你确定吗?通常Cocos2d会将这些东西设为只读。 - Almo
2个回答

5
为了翻转并保留之前的缩放效果,请使用以下代码:

sprite.scaleX *= -1.f;

在完成这个步骤之后,您不应该再使用属性sprite.scale,因为它包含了一个断言:scaleX == scaleY


3
尝试通过将scaleX设置为-1来翻转它:
sprite.scaleX = -1;

此外,值得一提的是,在将节点添加为子节点后,您应该能够设置flipX布尔值。如果您无法这样做,则可能存在其他问题。


1
这不会保留之前所做的任何缩放。 - Danyal Aytekin

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