所以我有这段代码:
if (ball.position.x < 45) {
ball.position = ccp(200, 200);
score1 = score1 + 1;
[label setString:[NSString stringWithFormat:@"Score %d - %d", score1, score2]];
}
在主init方法中我有:
[self schedule:@selector(move) interval:.01];
只是将球移动到屏幕周围。我想知道在将球移动到新位置和重新开始移动球之间我会暂停3秒钟。 (并且记录第一位代码在移动方法中)
答案 0 :(得分:3)
你能发布简历运动方法吗?要停止球移动,您需要取消预定[self unschedule:@selector(move:)]
您可以在延迟[self performSelector:@selector(resume) withObject:nil afterDelay:3.0f]
之后运行简历移动方法,您也可以使用CCCallFunc
执行此类延迟:
id moveCallFunc = [CCCallFunc ActionWithTarget:self selector:@selector(myMove)];
id resumeCallFunc = [CCCallFunc ActionWithTarget:self selector:@selector(resume)];
id tDelay = [CCDelayTime actionWithDuration:3.0f];
[self runAction:[CCSequence actions:moveCallFunc, tDelay, resumeCallFunc, nil]];
如果要像上面那样安排移动和恢复功能,可以包含调度方法,以便将它们用作选择器,如:
-(void)myMove {
[self schedule:@selector(move:)];
}
希望这有帮助
答案 1 :(得分:0)
之后,如果陈述为真,您可以 [self unschedule:_cmd];
然后[self schedule:@selector(newPos) interval:3];
并在 newPos 方法中为球分配一个新位置。