0
我試圖創建一個開始級別標籤(例如3.2.1.GO),但是當我根據Gamestate計劃選擇器運行並且如果gamestate比X大,選擇器不會; t返回到init選擇器,並且遊戲保持停止狀態。選擇器不返回到初始值
這是我的代碼是在init方法定義:
if (startLevelAnimState <=4) {
[self schedule: @selector(startLevelAnimation) interval:.5];
NSLog(@"%d", startLevelAnimState);
} else {
[self unschedule:@selector(startLevelAnimation)];
}
,這是startLevelAnimation
-(void)startLevelAnimation {
NSLog(@"running startlevelanimation");
if (startLevelAnimState == 0) {
NSLog(@"create start level label");
startLevelLabel = [CCLabelTTF labelWithString:@"3" fontName:@"Verdana-Bold" fontSize:62];
startLevelLabel.position = ccp(winWidth/2, winHeight*2);
[self addChild:startLevelLabel z: 10];
CCAction *actionMove = [CCActionMoveTo actionWithDuration:.8 position:CGPointMake(winWidth/2, winHeight*(.65))];
//CCAction *actionRemove = [CCActionRemove action];
[startLevelLabel runAction:[CCActionSequence actionWithArray:@[actionMove]]];
startLevelAnimState ++;
} else if (startLevelAnimState ==1) {
[startLevelLabel setString: [NSString stringWithFormat:@"2"]];
startLevelAnimState ++;
} else if (startLevelAnimState ==2) {
[startLevelLabel setString: [NSString stringWithFormat:@"1"]];
startLevelAnimState ++;
} else if (startLevelAnimState ==3) {
[startLevelLabel setString: [NSString stringWithFormat:@"GO!"]];
startLevelAnimState ++;
} else if (startLevelAnimState ==4) {
CCAction *actionMove = [CCActionMoveTo actionWithDuration:.8 position:CGPointMake(winWidth/2, winHeight*2)];
[startLevelLabel runAction:[CCActionSequence actionWithArray:@[actionMove]]];
startLevelAnimState ++;
gameState = 1;
[self unschedule:@selector(startLevelAnimation)];
}
}
init在創建圖層時只調用一次。你必須創建另一個調度程序來處理遊戲中的更新。 – uchamp
你有另一個調度程序嗎? – uchamp