私はcocos2dとobjective-cを使って簡単なゲームを書いています。このゲームでは、敵のスプライトにランダムな位置を与えます。異なる敵が重ならないように、新しいスプライトの CGRect がランダムな位置で他のスプライトの CGRect と重ならないようにチェックを書きます。
私の質問は、新しいスプライトを初期化する前に CGRect のサイズを取得するにはどうすればよいですか? また、ccbi ファイル (cocosbuilder) を使用してスプライトを初期化する場合、これをどのように行うのですか?
以前に行ったことは、新しいスプライトを初期化する前に、敵の最初のフレームを示す png ファイルを使用して一時的なスプライトを初期化することです (すべてのフレームは同じサイズです)。次に、tempSprite.boundingBox のようなサイズを使用します。うまく機能しますが、すべての新しい敵スプライトを初期化する前に tempSprite を作成するのは効率的ではないと思います。
現在、cocosbuilder を使用してゲームを変換しようとしています (ccbi ファイルを使用するとアニメーションの調整が容易になるため)。初期化する前にスプライトのサイズを知るにはどうすればよいですか? [CCBReader nodeGraphFromFile:@"enemySprite.ccbi"] を使用して tempSprite を作成し、tempSprite.boundingBox を使用してそのサイズを取得できると思います。しかし、それは正しい方法ですか?CPU とメモリのリソースを非常に無駄に感じます。更新:うまくいかない方法を試しました。boundingBox のサイズ値は (0,0) (位置の値は右) であるためです。