BOOL在update:(CFTimeInterval)currentTime方法的if语句中给出不同的结果

时间:2016-04-27 13:03:43

标签: ios objective-c sprite-kit boolean skscene

我有两个场景 - DifficultSceneGameScene。在DifficultScene我有三个按钮 - 简单,中等和硬。我使用全局变量Bool来跟踪当前的难度级别。当我尝试轻松模式时,一切正常,但是当我尝试中等或难度时,布尔每秒都在变化,从难以跳到中等容易,让游戏无法播放。 我的问题是 - 我该如何解决?以下是代码发生的事情:
GamesScene.m

-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
extern BOOL isEasyMode;
extern BOOL isMediumMode;
extern BOOL isHardMode;
if ((isEasyMode = YES)) {
    NSLog(@"easy");
    [self computer];
}
if ((isMediumMode = YES)) {
    NSLog(@"medium");
    [self computerMedium];
}
if ((isHardMode = YES)) {
    NSLog(@"hard");
    [self computerHard];
}

[self scoreCount];
}

(如果需要更多代码,我会发布)

1 个答案:

答案 0 :(得分:2)

我认为你的更新方法会按照计时器周期性地调用,所以如果它那么它会被连续调用。这就是为什么它发生了我认为和另一个重要的事情是你应该使用==进行比较。您使用(isEasyMode = YES)表示您要将YES分配给isEasyMode

所以if if ((isEasyMode = YES))if (isEasyMode == YES)之类的语句重新表达。

更新:

如果声明应该,

  if (isEasyMode == YES) {
    NSLog(@"easy");
    [self computer];
}

希望这会有所帮助:)