0
これを設定すると、1回のスワイプで動作しますが、それ以上追加しても何もしません。可能であれば、このシーンの遷移をトリガーするために、ユーザーが左、右、上にスワイプしなければならないようにします。複数のスワイプでスプライトのシーントランジションをトリガーする
GameStart.H
@property (nonatomic, strong) UISwipeGestureRecognizer *leftSwipeGesture;
@property (nonatomic, strong) UISwipeGestureRecognizer *rightSwipeGesture;
@property (nonatomic, strong) UISwipeGestureRecognizer *upSwipeGesture;
@property (nonatomic, strong) UISwipeGestureRecognizer *downSwipeGesture;
@property(nonatomic) BOOL cancelsTouchesInView;
GameStart.mは
これはトリックをした- (void)didMoveToView:(SKView *)view{
_cancelsTouchesInView = NO;
self.leftSwipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handlesSwipes:)];
self.rightSwipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handlesSwipes:)];
self.upSwipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handlesSwipes:)];
self.downSwipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handlesSwipes:)];
self.leftSwipeGesture.direction = UISwipeGestureRecognizerDirectionLeft;
self.rightSwipeGesture.direction = UISwipeGestureRecognizerDirectionRight;
self.upSwipeGesture.direction = UISwipeGestureRecognizerDirectionUp;
self.downSwipeGesture.direction = UISwipeGestureRecognizerDirectionDown;
[self.view addGestureRecognizer:self.leftSwipeGesture];
[self.view addGestureRecognizer:self.rightSwipeGesture];
[self.view addGestureRecognizer:self.upSwipeGesture];
[self.view addGestureRecognizer:self.downSwipeGesture];
}
-(void)handlesSwipes:(UISwipeGestureRecognizer *) sender{
if (sender.direction == UISwipeGestureRecognizerDirectionLeft && sender.direction == UISwipeGestureRecognizerDirectionRight && sender.direction == UISwipeGestureRecognizerDirectionUp){
SKTransition *fade = [SKTransition crossFadeWithDuration:.5];
MyScene * scene = [MyScene sceneWithSize:self.view.bounds.size];
[self.view presentScene:scene transition:fade];
}