2016-06-08 59 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

愚蠢的我..感觉很愚蠢,没有注意到,但是..非常感谢您的先生! –