2012-04-18 11 views
3

ので、同様に、私は、setTexture経由CCSpriteの質感を交換私のiOSプロジェクト内のコードの一部を持っている:テクスチャを変更した後、CCSpriteの寸法を変更するにはどうすればいいですか?

[sprite setTexture:[[CCTextureCache sharedTextureCache] addImage:@"Circle.png"]]; 

しかし、スワップ前後のCCSpriteのテクスチャの大きさが異なっている、としてその結果、Circle.pngテクスチャが切り取られています。元のテクスチャのサイズで丸まっている(円が大きいほど)。

テクスチャを交換した後にサイズを調整するにはどうすればよいですか?

Related, but not helpful in solving this

答えて

9

はこれを試してみてください、自動的に設定されます。

CCTexture2D* texture = [[CCTextureCache sharedTextureCache] addImage:@"Circle.png"]; 

    if (texture) 
    { 
       // Get the size of the new texture: 
     CGSize size = [texture contentSize]; 

     [sprite setTexture:texture]; 
       // use the size of the new texture: 
     [sprite setTextureRect:CGRectMake(0.0f, 0.0f, size.width,size.height)]; 
    } 
+1

これを行うには適切な長さを得るためにもう少しコードを追加しなければならなかったので、それを推奨編集として追加しました。 –

0

あなただけspriteWithFileコンストラクタとスプライトを再作成することができます。寸法は

+0

はこれを行うメモリ管理、悪いのアクセス、およびゾンビの問題に実行されます。これに伴ってメモリ管理をどのように行うのかについてもう少し詳しく説明できますか? –

+0

メモリに関する問題はありません。親から最初のスプライトを削除し、新しいファイルで新しいスプライトを作成し、それを必要な親に追加します。 – Morion

関連する問題