嘿,目前我正在尝试检查CCMenuItemImage的当前图像,如下所示:
if (ipodButton.normalImage == [CCSprite spriteWithFile:@"Image1.png"]) {
但问题是,这个if语句永远不会被调用。即使我在init方法之前将CCMenuItemImage的正常图像设置为Image1.png。
我应该采取另一种方式吗?
谢谢!
答案 0 :(得分:2)
此代码永远不会成立:
ipodButton.normalImage == [CCSprite spriteWithFile:@"Image1.png"]
原因是您正在创建CCSprite的新实例。这将是与normalImage中存储的sprite不同的sprite,因此比较失败,因为两个指针指向不同的内存地址。
毋庸置疑,每次执行此行代码时,都会在此后不久创建并发布新的CCSprite,从而浪费CPU周期。正确的方法是使用tag属性:
ipodButton.normalImage.tag = 10;
if (ipodButton.normalImage.tag == 10) { … }