【问题标题】:Problems with Swipe Gesture in Landscape Mode横向模式下滑动手势的问题
【发布时间】:2016-06-09 03:23:50
【问题描述】:

我一直在想办法自己解决这个问题,但没有任何运气。

编程语言是 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];
}

【问题讨论】:

    标签: ios objective-c sprite-kit landscape


    【解决方案1】:

    您的复制/粘贴失败,您需要修复您的 setDirections,当您想设置其他方向时,您只设置了左侧。

    【讨论】:

    • 复制粘贴?不知道你的意思..但是代码是我写的。还有,你如何修复“setDirections”?
    • 您复制/粘贴代码 4 次以处理 4 个方向:例如。 [oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionUp]; 应该是 [oneFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp];
    • 愚蠢的我..感觉很愚蠢还没有注意到..非常感谢先生!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多