基本上我有一個產卵實體函數,理論上應該在隨機氣球上產生一定的屬性。我設計了這樣的方法:SKAction repeatActionForever不產卵實體
-(void)spawnBalloon
{
int a = arc4random_uniform(self.frame.size.width);
int b = self.frame.size.height - 50;
CGPoint loc = CGPointMake(a, b);
[self spawnBalloonAtPoint:loc];
}
而且這種方法的工作原理。當我在init函數中調用它時,它可以工作。當我在touchesMoved()函數中調用它時,它可以工作。但是,當我嘗試在初始化方法中使用
[self runAction:[SKAction repeatActionForever:[SKAction performSelector:@selector(spawnBalloon) onTarget:self]]];
時,它會失敗。爲什麼是這樣?我是否必須使用「自我」中的performSelector函數,然後使用NSTimer將它永久重複?
另外,我試着將NSLog引入代碼中,以查看它是否在重複操作中被執行時,它是。唯一的問題是氣球沒有被添加到屏幕上。我的感覺是,當我通過repeatActionForever調用spawnBalloon函數時,self指向一個不同的類?對不起,如果這是令人困惑的,我還是新來Objective C和SpriteKit,而不是真的讀了很多我潛入並決定什麼時候需要學習(但我有廣泛的Java/C知識)
編輯: 我想,如果我沒有repeatForever行動,代碼將執行和工作。但是,如果它在那裏,它不起作用。
感謝您的回覆。 – TSwift