В принципе у меня есть функция объекта появления, которая должна теоретически порождать случайный шар на экране с определенными свойствами. Я разработал метод как таковой: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, он работает. Когда я вызываю его в функции touchhesMoved(), он работает. Однако, когда я пытаюсь вызвать его в методе init с помощью
[self runAction:[SKAction repeatActionForever:[SKAction performSelector:@selector(spawnBalloon) onTarget:self]]];
Не удается. Почему это? Должен ли я просто использовать функцию performSelector от «self», а затем использовать NSTimer, чтобы он повторялся навсегда?
Кроме того, я попытался бросить NSLog в код, чтобы убедиться, что он даже выполняется, когда он был в повторном действии, и это так. Единственная проблема заключается в том, что баллон не добавляется на экран. Я чувствую, что когда я вызываю функцию spawnBalloon через repeatActionForever, я сам отношусь к другому классу? Извините, если это сбивает с толку, я все еще новичок в Objective C и SpriteKit, и вместо того, чтобы действительно много читать, я нырнул и решил учиться - когда это необходимо (Однако у меня есть обширные знания Java/C)
EDIT: Я понял, что если у меня нет действия repeatForever, код будет выполняться и работать. Однако, если он там, он не работает.
Благодарим за отзыв. – TSwift