CCSpriteの一部のみを表示する可能性はありますか?
contentSize
プロパティが良い結果をもたらさないことは継ぎ目です。
このために新しいスプライトを作成する必要があるかもしれません。一般的な擬似コードはこれです。
CCTexture2D *origTexture = originalSprite->getTexture();
CGRect rect = {0, 0, 20, 20};
CCSprite *destSprite = CCSprite::spriteWithTexture(origTexture, CGRect);
doc_180とJamesの両方の回答は、テクスチャの一部を使用して新しいCCSpriteを作成することで機能しますが、クリッピングメソッドを使用している場合は、完全なテクスチャを使用するCCSpriteを取得しますが、画面にはその一部しか描画できません。この方法の利点の1つは、CCSpriteを何度も再作成する(またはテクスチャを何度も置き換える)必要がなく、その場で表示または非表示にする部分の大きさや小ささを変更できることです。
したがって、クリッピングメソッドを使用するには、ここからClippingNodeクラスをダウンロードし、クリップするCCSpriteをそのClippingNodeに追加するだけです。次に、そのメソッドの1つを呼び出して、描画を制限する領域を指定します。私は現在プログレスバーを作成するためにそれを使用しているので、それがうまく機能することは確かです。
を取得し[sprite displayedFrame]
、そのを変更してframe
、そのスプライトフレームを使用して新しいスプライトを作成します。CCSprite *sprite2 = [CCSprite spriteWithSpriteFrame:frame]