Cocos2d缩放精灵会导致伪影

时间:2012-08-23 21:59:28

标签: ios graphics opengl-es cocos2d-iphone

我在主分支上,以便它可以与ARC一起使用。

我已经实现了一种方法,当用户触摸精灵时,精灵将按比例缩放1.1倍。多个触摸将排队多个缩放操作,彼此叠加。偶尔我会得到一个奇怪的神器,其中较小版本的精灵出现在缩放版本之上。

以下是截图:enter image description here

更多背景:我正在使用纹理图集,因此我使用:

    sprite = [super spriteWithSpriteFrameName:anObject.filename];

初始化精灵。这是openGL / cocos2d中的错误吗?关于如何阻止这个神器的任何建议?

编辑: 我是CCSprite的子类,但据我所知,只有一个sprite实例(对super的调用是在类方法中)。基本上,用户将定义精灵将执行的操作列表。还可以使用以下命令中断操作列表:

[self stopAllActions]

我有使用CCMoveBy和CCRotateBy的子类的操作没有问题。它只是导致此工件的CCScaleBy的最新子类。在这些操作的子类中,我没有改变操作中的任何内容,只是跟踪某些变量,以便我可以在中断后正确地恢复操作。

1 个答案:

答案 0 :(得分:1)

你是否可能是CCSprite的子类,在你的子类中你是否也添加了一个CCSprite实例变量?

在这种情况下,你将展示两个精灵。超类精灵和实例变量精灵。如果其他精灵只出现,有时这可能取决于添加精灵作为孩子的顺序,或zOrder属性。