我有两个场景 - DifficultScene
和GameScene
。在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];
}
(如果需要更多代码,我会发布)
答案 0 :(得分:2)
我认为你的更新方法会按照计时器周期性地调用,所以如果它那么它会被连续调用。这就是为什么它发生了我认为和另一个重要的事情是你应该使用==
进行比较。您使用(isEasyMode = YES)
表示您要将YES
分配给isEasyMode
。
所以if if ((isEasyMode = YES))
和if (isEasyMode == YES)
之类的语句重新表达。
更新:
如果声明应该,
if (isEasyMode == YES) {
NSLog(@"easy");
[self computer];
}
希望这会有所帮助:)