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

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


但是问题是,永远不会调用此if语句。即使我在init方法中之前将CCMenuItemImage的普通图像设置为Image1.png。

我还有其他方法可以这样做吗?

谢谢!

最佳答案

这段代码永远不会正确:

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


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

不用说,每次执行此代码行时,都会创建一个新的CCSprite并在此后不久释放它,这浪费了CPU周期。解决此问题的正确方法是使用tag属性:

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

09-19 02:10