Sprite Kit检测触摸位置

时间:2014-02-12 20:18:33

标签: ios objective-c sprite-kit

我想根据您是否触摸屏幕的左半部分或右半部分来执行不同的操作。触摸左半部分时的动作,触摸右半部分的动作。

我想我可以创建一个覆盖屏幕一半的透明按钮图像,并在触摸时使用this code来执行操作,但我不认为这是可行的方法。有没有更好的方法来检测触摸的位置?

2 个答案:

答案 0 :(得分:5)

覆盖touchesEnded:withEventtouchesBegan:withEvent:方法来执行此操作:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];

    if(touch){
        if([touch locationInView:self.view]>self.size.width/2){
            [self runTouchOnRightSideAction];
        }else{
            [self runTouchOnLeftSideAction];
        }
    } 
}

答案 1 :(得分:3)

我提出了以下代码,它完美无缺。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [touches anyObject];
    CGPoint touchLocation = [touch locationInNode:self];

    // If left half of the screen is touched
    if (touchLocation.x < self.size.width / 2) {
        // Do whatever..
    }

    // If right half of the screen is touched
    if (touchLocation.x > self.size.width / 2) {
        // Do whatever..
    }
}