我試圖開發一款遊戲,並運行到NSTimer的一個小問題,一旦精靈出現在我的場景中有一定的時間在淡出之前。NSTimer立即開火
double CALC_TIME = 5;
[NSTimer scheduledTimerWithTimeInterval:CALC_TIME target:self selector:@selector(hideSprite) userInfo:nil repeats:NO];
我想在5秒後調用hideSprite,而是立即調用它(或接近即時)。
一個可能的解決方案: 我知道我可以設置定時復讀,並具有設置第一次,然後下一個間隔的衰落做了布爾華美通爲此,計時器是無效的,但我不要認爲這是很好的做法
像這樣:
bool firstCall = false;
-(void)hideSprite{
if(!firstCall){
firstCall = true
}else{
//fade out sprite
//Invalidate NSTimer
//firstCall = false;
}
}
感謝您的幫助!
這應該有效。還有其他的錯誤 - 你確定'hideSprite'沒有被其他代碼調用嗎?就像一些測試代碼在計時器設置完成後立即仍然留在那裏一樣? – 2011-12-19 21:40:05
不,我剛剛在那裏檢查,該方法只從一個地方調用, 我添加了一個NSLog,一個在我初始化該方法之後,另一個在它調用的方法中。 保持輸出: _2011-12-19 21:43:11.547擠流EM [14144:10a03]計時器調用 2011-12-19 21:43:11.562擠流EM [14144:10a03],叫做定時器 2011-12-19 21:43:16.582 Squish Em [14144:10a03]計時器被叫做 2011-12-19 21:43:16.596 Squish Em [14144:10a03]叫做Timer_ – Rich 2011-12-19 21:44:40