В моем текущем проекте я использую UITapGestureRecognizer. Я закодировал его так, чтобы при нажатии левой стороны экрана перемещался объект, а при нажатии правой стороны экрана перемещался другой объект. Однако распознаватель жеста работает только при нажатии правой стороны. Кроме того, я хотел бы сделать так, чтобы SKActions можно было выполнить, если обе стороны одновременно задействованы. Я не понимаю, что я делаю неправильно. Мой код ниже. Заранее спасибоUITapGestureRecognizer не будет выполняться должным образом
В ViewDidLoad
UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap1:)];
[tap1 setNumberOfTapsRequired:1];
[self.view addGestureRecognizer:tap1];
view.multipleTouchEnabled = YES;
-(void)tap1:(UIGestureRecognizer *)gestureRecognizer {
SKNode *person11 = [self childNodeWithName:@"person1"];
SKNode *person2 = [self childNodeWithName:@"person2"];
CGPoint pt = [gestureRecognizer locationInView:self.view];
if (pt.x > (self.view.bounds.size.width/2))
{
if (person2.position.x == CGRectGetMidX(self.frame) + 400) {
SKAction *moveLeft2 = [SKAction moveTo:CGPointMake(CGRectGetMidX(self.frame) + 90, CGRectGetMidY(self.frame) + 200) duration:0.1f];
[person2 runAction:moveLeft2];
}
if (person2.position.x == CGRectGetMidX(self.frame) + 90) {
SKAction *moveRight2 = [SKAction moveTo:CGPointMake(CGRectGetMidX(self.frame) + 400, CGRectGetMidY(self.frame) + 200) duration:0.1f];
[person2 runAction:moveRight2];
}
}
if (pt.x < (self.view.bounds.size.width/2)){
if (person11.position.x == CGRectGetMidX(self.frame) - 90) {
SKAction *moveLeft2 = [SKAction moveTo:CGPointMake(CGRectGetMidX(self.frame) - 400, CGRectGetMidY(self.frame) + 200) duration:0.1f];
[person11 runAction:moveLeft2];
}
if (person11.position.x == CGRectGetMidX(self.frame) - 400) {
SKAction *moveRight2 = [SKAction moveTo:CGPointMake(CGRectGetMidX(self.frame) - 90, CGRectGetMidY(self.frame) + 200) duration:0.1f];
[person11 runAction:moveRight2];
}
}
}
Благодарим за помощь, этот метод работает. По какой-то причине Person1 не будет распознаваться независимо от того, какой метод используется. SKAction не влияет на человека1. я понятия не имею, почему это так, вы знаете, что я могу сделать неправильно? – d33
@ d33, вы пробовали отлаживать (печатать на консоль, чтобы проверить, действительно ли код выполняется). – Dopapp