0

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

我已经实现了一种方法,当用户触摸精灵时,精灵将缩放 1.1 倍。多次触摸将使多个缩放动作排队,建立在彼此之上。时不时地我得到一个奇怪的工件,其中较小版本的精灵出现在缩放版本的顶部。

这是一个屏幕截图:在此处输入图像描述

更多背景:我正在使用纹理图集,所以我使用:

    sprite = [super spriteWithSpriteFrameName:anObject.filename];

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

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

[self stopAllActions]

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

4

1 回答 1

1

您是否可能是 CCSprite 的子类,并且在您的子类中您是否也添加了 CCSprite 实例变量?

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

于 2012-08-24T12:02:17.963 回答