【发布时间】:2012-08-23 21:59:27
【问题描述】:
我在 master 分支上,因此它可以与 ARC 一起使用。
我已经实现了一种方法,当用户触摸精灵时,精灵将缩放 1.1 倍。多次触摸将使多个缩放动作排队,建立在彼此之上。时不时地我得到一个奇怪的工件,其中较小版本的精灵出现在缩放版本的顶部。
截图如下:
更多背景:我正在使用纹理图集,所以我使用:
sprite = [super spriteWithSpriteFrameName:anObject.filename];
初始化精灵。这是 openGL/cocos2d 中的错误吗?有关如何停止此工件的任何建议?
编辑: 我是 CCSprite 的子类,但据我所知只有一个精灵实例(对 super 的调用是在类方法中)。基本上,用户将定义精灵将执行的操作列表。也可以使用以下命令中断操作列表:
[self stopAllActions]
我已经使用 CCMoveBy 和 CCRotateBy 的子类进行了操作,没有任何问题。只有最新的 CCScaleBy 子类会导致此工件。在这些动作的子类中,我没有更改动作中的任何内容,只是跟踪某些变量,以便我可以在中断后正确恢复动作。
【问题讨论】:
-
你为什么用super?不应该只是 [CCSprite spriteWithSpriteFrameName:name]; 吗?我很困惑。
标签: ios graphics opengl-es cocos2d-iphone