編集(追加テスト後の短いバージョン): 追加しただけです:
CGSize winSize = [[CCDirector sharedDirector] winSize];
CCRenderTexture *rt = [CCRenderTexture renderTextureWithWidth:winSize.width height:winSize.height];
ゲーム プロジェクト( BulletCacheのインスタンスが追加されたGameScene がある) の BulletCache にアクセスすると、ゲームシーン インスタンスを読み込もうとしているときにアプリがクラッシュするようになりました (以前はこのクラッシュで問題はありませんでした)。
注: CCRenderTexture の init メソッドにブレークポイントを追加しましたが、スムーズに実行されているように見えます。init の後にある必要があります。
逆に、GameScene の init メソッドで同じことを試しましたが、アプリはクラッシュしません。空の cocos2d-ios helloworld テンプレート プロジェクトに追加した場合も同様です。
したがって、cocos2d-ios helloworld テンプレートで、batchnode と CCRenderTexture インスタンスを持つことで競合が発生するかどうかを確認するために追加のテストを行い、helloworldlayer.m init メソッドの最後に次を追加しました。
CCSpriteFrameCache* frameCache = [CCSpriteFrameCache sharedSpriteFrameCache];
[frameCache addSpriteFramesWithFile:@"art1-hd.plist"];
CCSpriteBatchNode* spriteBatch = [CCSpriteBatchNode batchNodeWithFile:@"art1-hd.png"];
[self addChild:spriteBatch];
CGSize winSize = [[CCDirector sharedDirector] winSize];
CCRenderTexture *rt = [CCRenderTexture renderTextureWithWidth:winSize.width height:winSize.height];
[self addChild:rt];
クラッシュはありませんでした。
これを解決する方法については、多くの接着剤が残っていません。
編集: CCRenderTexture を見つけた pixelperfect 衝突プロジェクトについて言及した元の質問を削除しました