查看CCMenuItemImage的当前图像?

时间:2012-01-08 20:46:14

标签: ios image cocos2d-iphone

嘿,目前我正在尝试检查CCMenuItemImage的当前图像,如下所示:

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

但问题是,这个if语句永远不会被调用。即使我在init方法之前将CCMenuItemImage的正常图像设置为Image1.png。

我应该采取另一种方式吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

此代码永远不会成立:

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

原因是您正在创建CCSprite的新实例。这将是与normalImage中存储的sprite不同的sprite,因此比较失败,因为两个指针指向不同的内存地址。

毋庸置疑,每次执行此行代码时,都会在此后不久创建并发布新的CCSprite,从而浪费CPU周期。正确的方法是使用tag属性:

ipodButton.normalImage.tag = 10;
if (ipodButton.normalImage.tag == 10) { … }