2012-08-23 60 views
0

我在主分支上,以便它可以与ARC一起使用。Cocos2d缩放精灵导致神器

我已经实现了一种方法,即当用户触摸精灵时,精灵将会缩放1.1倍。多次触摸会排队多个缩放操作,它们彼此重叠。偶尔我会得到一个奇怪的神器,其中精简版本的小精灵版本显示出来。

以下是截图:enter image description here

更多的背景:我使用一个纹理图集所以我用:

sprite = [super spriteWithSpriteFrameName:anObject.filename]; 

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

编辑: 我是CCSprite的子类,但据我所知只有一个精灵实例(super调用在类方法中)。基本上,用户将定义精灵将执行的动作列表。使用CCMoveBy和CCRotateBy的子类

[self stopAllActions] 

我已经行动没有问题:行动列表还可以使用中断。它只是CCScaleBy的最新子类导致此工件。在这些动作的子类中,我没有改变动作中的任何内容,只是跟踪某些变量,以便在中断后可以正确恢复动作。

+0

你为什么使用超级?它不应该只是[CCSprite spriteWithSpriteFrameName:name];?我很困惑。 – tallen11

回答

1

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

在这种情况下,您将显示两个精灵。超类精灵和实例变量精灵。如果另一个精灵仅仅有时显示出来,这可能取决于将精灵添加为孩子的顺序或zOrder属性。

+0

我是CCSprite的子类,但我不认为有CCSprite实例变量。不过,我的确在CCSprite类中创建了更多的CCSprites,以便在精灵移动后绘制一条线,但这一直持续了一段时间而没有问题。只有当我使用不绘制运动连线的CCScale时,工件才会出现。 –