【发布时间】:2014-06-03 22:05:58
【问题描述】:
所以我有一个名为MainScene 的场景,其中CCScrollView UpgradesScroller 包含名为UpgradesNew 的层。我有一个按钮,当点击MainScene 时,应将hasItem 布尔值设置为YES,然后当UpgradesNew 层未隐藏时,应根据布尔值的输出更改标签颜色。
这是我尝试过的。
将hasItem 设置为真:
-(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 实例。但我不确定如何以正确的方式做到这一点。
【问题讨论】:
-
什么是 CCScrollView?什么是CCColor?为什么在 Objective-C 代码中使用
true而不是YES?为什么要使用==来检查if中的bool? -
是 cocos2d.. true 和 yes 是一样的。使用 == 是因为 YES/NO 和 true/false 是整数(分别为 0 和 1)
-
评估结果为真或假...您的代码将运行 100% 与删除
== true完全相同。世界上没有一种编程语言是不正确的...... -
upgradesScroller.visible = !upgradesScroller.visible; ...您的 if/else/yes/no/true/false 讨论是无效的 ;) 我不喜欢混合风格,要么坚持是/否或真/假。是/否是 objc 的默认设置。
-
TRUE 和 YES 都是同一事物的有效同义词。 (FALSE 和 NO 相同。)我可以互换使用它们。不确定“真实”。我相信这是 C 语言,而不是 Objective C。构造
if (value == TRUE)或if (value == YES)完全有效,并且在逻辑上与if (value)相同。这是风格问题。有些人发现if (value == TRUE)更容易阅读。 nhgrif,无意冒犯,但你是在抓稻草。
标签: ios objective-c colors cocos2d-iphone