2016-06-08 8 views
0

Ich habe versucht, einen Weg zu finden, dies alleine zu beheben, ohne Glück.Probleme mit der Wischgeste im Landscape-Modus

Programmiersprache ist Objective-C und SpriteKit ist die Technologie.

Ich versuche, eine SKNode mit Swipe-Gesten über den Bildschirm bewegen. (In einer Querformat-App)

Das Problem ist, wenn ich nach links oder anderen Seiten wischen, wird der Knoten die entgegengesetzte Richtung bewegen und verwenden Sie eine andere Methode als es soll. Es sieht so aus, als ob das iPhone denkt, dass es im Hochformat ist. Was soll ich machen?

Hier ist der Code:

Innen .h den Knoten

SKNode *Main_Character; 

Innen Deklarieren .m

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    /* Called when a touch begins */ 
    UISwipeGestureRecognizer *oneFingerSwipeLeft = [[UISwipeGestureRecognizer alloc] 
                initWithTarget:self 
                action:@selector(SwipedLeft)] ; 
    [oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft]; 
    [[self view] addGestureRecognizer:oneFingerSwipeLeft]; 

    UISwipeGestureRecognizer *oneFingerSwipeRight = [[UISwipeGestureRecognizer alloc] 
                initWithTarget:self 
                action:@selector(SwipedRight)] ; 
    [oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft]; 
    [[self view] addGestureRecognizer:oneFingerSwipeRight]; 

    UISwipeGestureRecognizer *oneFingerSwipeUp = [[UISwipeGestureRecognizer alloc] 
                initWithTarget:self 
                action:@selector(SwipedUp)] ; 
    [oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionUp]; 
    [[self view] addGestureRecognizer:oneFingerSwipeUp]; 

    UISwipeGestureRecognizer *oneFingerSwipeDown = [[UISwipeGestureRecognizer alloc] 
                initWithTarget:self 
                action:@selector(SwipedDown)] ; 
    [oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionDown]; 
    [[self view] addGestureRecognizer:oneFingerSwipeDown]; 
} 

// Methods to make the node move when a swipe is called. 
-(void)SwipedDown{ 
    SKAction *Move = [SKAction moveByX:0.00 y:-50 duration:2]; 

    [Main_Character runAction:Move]; 
} 

-(void)SwipedUp{ 
    SKAction *Move = [SKAction moveByX:0.00 y:+50 duration:2]; 

    [Main_Character runAction:Move]; 
} 

-(void)SwipedRight{ 
    SKAction *Move = [SKAction moveByX:+50 y:0.00 duration:2]; 

    [Main_Character runAction:Move]; 
} 

-(void)SwipedLeft{ 
    SKAction *Move = [SKAction moveByX:-50 y:0.00 duration:2]; 

    [Main_Character runAction:Move]; 
} 

Antwort

0

Ihre copy/paste haben Sie es versäumt, müssen Sie Ihre setDirections beheben, Sie setzen nur nach links, wenn Sie andere Richtungen einstellen möchten.

+0

Kopie einfügen? Ich weiß nicht, was du meinst .. Aber der Code ist von mir geschrieben. Und wie reparierst du "setDirections"? –

+0

Sie kopieren Ihren Code 4 mal, um die 4 Richtungen zu behandeln: E.G. '[oneFingerSwipeLeft setDirection: UISwipeGestureRecognizerDirectionUp];' sollte sein '[oneFingerSwipeUp setDirection: UISwipeGestureRecognizerDirectionUp];' – Knight0fDragon

+0

Dumm mich .. Fühlt sich so doof habe noch nicht bemerkt .. Vielen Dank Herr! –