2016-04-09 8 views
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]; 
    } 

答えて

0

=)ありがとうございます!

-(void)handlesSwipes:(UISwipeGestureRecognizer *) sender{ 

    if (sender.direction == UISwipeGestureRecognizerDirectionLeft){ 
     _userSwipeLeft = YES; 

    } 
    if (sender.direction == UISwipeGestureRecognizerDirectionRight){ 
     _userSwipeRight = YES; 

    } 
    if (sender.direction == UISwipeGestureRecognizerDirectionUp){ 
     _userSwipeUp = YES; 



    } 
    if (_userSwipeUp == YES && _userSwipeRight == YES && _userSwipeLeft == YES){ 

     SKTransition *fade = [SKTransition crossFadeWithDuration:.5]; 
     MyScene * scene = [MyScene sceneWithSize:self.view.bounds.size]; 
     scene.scaleMode = SKSceneScaleModeAspectFill; 
     [self.view presentScene:scene transition:fade]; 
    } 

} 
関連する問題