ARCで動作するように、マスターブランチにいます。
ユーザーがスプライトに触れると、スプライトが 1.1 倍にスケーリングされるメソッドを実装しました。複数のタッチは、互いの上に構築された複数のスケーリング アクションをキューに入れます。ときどき、スプライトの小さいバージョンがスケーリングされたバージョンの上に表示される奇妙なアーティファクトが表示されます。
スクリーンショットは次のとおりです。
背景の詳細: テクスチャ アトラスを使用しているので、以下を使用します。
sprite = [super spriteWithSpriteFrameName:anObject.filename];
スプライトを初期化します。これは openGL/cocos2d のバグですか? このアーティファクトを停止する方法について何かアドバイスはありますか?
編集: CCSprite をサブクラス化していますが、スプライトのインスタンスが 1 つしかないことがわかります (super の呼び出しはクラス メソッドで行われました)。基本的に、ユーザーはスプライトが実行するアクションのリストを定義します。アクション リストは、以下を使用して中断することもできます。
[self stopAllActions]
CCMoveBy と CCRotateBy のサブクラスを使用して問題なくアクションを実行しました。このアーティファクトを引き起こしているのは、CCScaleBy の最新のサブクラスだけです。これらのアクションのサブクラスでは、アクション内で何も変更せず、中断後にアクションを適切に再開できるように特定の変数を追跡するだけです。