2016-04-09 3 views
0

Wie ich es jetzt eingerichtet habe, funktioniert es mit einem Swipe, aber wenn ich mehr hinzufüge, tut es nichts. Ich möchte, dass der Benutzer nach links, rechts und oben wischen muss, um diesen Szenenübergang auszulösen, wenn möglich.Mehrere Swipes zum Auslösen eines Szenenübergangs in Sprite

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]; 
    } 

Antwort

0

Dieser der Trick =) Vielen Dank!

-(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]; 
    } 

}