2016-06-08 61 views
0

我一直在想辦法解決這個問題,沒有任何運氣。在橫向模式下滑動手勢的問題

編程語言是Objective-C,SpriteKit是該技術。

我正在嘗試使用滑動手勢在屏幕上移動SKNode。 (在橫向模式應用程序)

問題是,當我向左或向任何其他方向滑動時,節點將移動相反的方向並使用其它方法。它看起來像iPhone認爲它是在肖像模式。我該怎麼辦?

下面的代碼:

內的.h聲明節點

SKNode *Main_Character; 

裏面的.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]; 
} 

回答

0

你的複製/粘貼失敗了你,你需要修復您的setDirections,當你想設置其他方向時,你只需設置左邊。

+0

複製粘貼?不知道你的意思..但代碼是由我寫的。另外,你如何解決「setDirections」? –

+0

您複製/粘貼您的代碼4次以處理4個方向:E.G. '[oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionUp];'應該是'[oneFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp];' – Knight0fDragon

+0

愚蠢的我..感覺很愚蠢,沒有注意到,但是..非常感謝您的先生! –