所以我有一个名为MainScene
的场景,其中CCScrollView
UpgradesScroller
包含名为UpgradesNew
的图层。我有一个按钮,当点击MainScene
时,应将hasItem
布尔值设置为YES
,然后取消隐藏图层UpgradesNew
时,应根据布尔值的输出。
这是我尝试过的。
将hasItem
设为true:
-(void) buyItem {
hasItem = true;
}
}
在MainScene
中,这是取消隐藏UpgradesNew
时使用的方法。
-(void)Upgrades {
UpgradesNew *upNew = [[UpgradesNew alloc]init];
[upNew changeColor];
if (upgradesScroller.visible == NO) {
upgradesScroller.visible = YES;
} else if (upgradesScroller.visible == YES) {
upgradesScroller.visible = NO;
}
}
在UpgradesNew
-(void)changeColor {
if (hasItem == true) {
label.color = [CCColor greenColor];
NSLog(@"changecolor");
}
}
我认为问题是因为我正在分配UpgradesNew的空实例。但我不确定如何以正确的方式做到这一点。
答案 0 :(得分:1)
问题有点混乱,信息有点不完整,但我只能假设问题在这里:
UpgradesNew *upNew = [[UpgradesNew alloc]init];
我猜UpgradesNew
是某种视图或视图控制器,您已经实例化并在屏幕上显示。当您致电[[UpgradesNew alloc] init];
时,您正在创建一个新对象。您需要的是对您打算更改的当前现有UpgradesNew
对象的引用。您需要在此现有对象上调用changeColor
方法,而不是创建新方法。
编辑:如果你想获得有关如何获得正确对象的引用的帮助,你需要在问题中提供更多细节 - 正如所写的那样,这些对象之间的关系没有太多暗示。