У меня есть игра SpriteKit для Mac, которую я разрабатываю, и мне нужно иметь возможность проверить, когда определенные узлы спрайтов находятся ниже определенной оси Y. Я использую этот код в настоящее время:SpriteKit: проверка спрайта определенных координат не работает должным образом
-(void) hitOrMiss {
double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(),^{
if (orb.position.y < 80) {
NSLog(@"Miss!");
[orb removeFromParent];
}
[self hitOrMiss];
});
}
Он предназначен для работы непрерывного цикла каждые 0,1 секунды, и проверьте шарахи ниже ау позиции 80. Когда я использую этот метод в моей программе, часто не признает шары, которые ниже 80, и иногда логарифмирует один и тот же орб несколько раз, прежде чем удалять его из родителя. У меня есть несколько шаров, которые движутся по экрану, является ли это причиной того, что он не функционирует, как я ожидал от него последовательно?
Спасибо, любая помощь будет оценена.