2012-01-08 18 views
0

ねえ現在、私はこのようなCCMenuItemImageの現在の画像をチェックしようとしています:CCMenuItemImageの現在の画像を確認しますか?

if (ipodButton.normalImage == [CCSprite spriteWithFile:@"Image1.png"]) { 

をしかし、問題がある、このif文は決して呼び出されませんされます。私はCCMenuItemImageの通常のイメージをinitメソッドの前にImage1.pngに設定しています。

これを行う別の方法はありますか?

ありがとうございます!

答えて

2

このコードは真ではありません:

ipodButton.normalImage == [CCSprite spriteWithFile:@"Image1.png"] 

の理由は、あなたがCCSpriteの新しいインスタンスを作成しているということです。これは、normalImageに格納されているものとは異なるスプライトになります。したがって、2つのポインタが異なるメモリアドレスを指しているため、比較が失敗します。

言うまでもなく、このコード行が実行されるたびに、新しいCCSpriteが作成され、まもなく解放され、CPUサイクルが浪費されます。これについて適切な方法は、タグプロパティを使用することです:

ipodButton.normalImage.tag = 10; 
if (ipodButton.normalImage.tag == 10) { … } 
関連する問題