Я искал аналогичный вопрос и не нашел его, поэтому прошу прощения, если это уже было задано, но у меня возникают проблемы с ограничением количества касаний, которые SKScene позволит мне иметь. Я применил метод touchesBegan: withEvent: и настроил свои SKAction (-ы) для анимации, но то, что я хочу, пока анимируется узел спрайта, я не хочу, чтобы у него была возможность принять другое прикосновение ,Sprite Kit позволяет только одно касание
Я попытался подсчитать количество касаний, которые происходят, но это не сработало, поэтому я нахожусь в точке остановки.
Итак, мой основной вопрос: как мне создать «одно касание, а затем ждать окончания анимации, прежде чем может произойти другое прикосновение» в моей сцене?
Вот код:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
SKAction *jump = [SKAction moveToY:400 duration:.4];
SKAction *down = [SKAction moveToY:CGRectGetMidY(self.frame) duration:.4];
SKAction *action = [SKAction sequence:@[jump, down]];
for (UITouch *touch in touches) {
NSInteger touchesMax = 1;
NSInteger actualTouches = [touches count];
NSLog(@"%ld", (long)actualTouches);
actualTouches++;
if (actualTouches > touchesMax) {
[farmer removeAllActions];
}
else {
[farmer runAction:action];
}
}
}
любая помощь ценится
Вы можете попробовать создать переменную "actualTouches" как глобальную для этого метода. Поскольку, возможно, из-за действительной переменной переменная инициализируется. –