0

我正在尝试检测屏幕特定部分上的触摸开始和触摸结束。我有一个作为 Sprite 的蜘蛛,我通过 touchbegan 和 touchend 改变它的面方向。我只想从我的蜘蛛前面接触。

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //[self ccTouchesMoved:touches withEvent:event];
    UITouch *touch = [touches anyObject];
    startTouchPoint = [touch locationInView: [touch view]];

    //location = [[CCDirector sharedDirector] convertToGL: location];
    CCLOG(@"Location of Touch %@",NSStringFromCGPoint(startTouchPoint));
}
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    
    UITouch *touch = [touches anyObject];
    CGPoint endlocation = [touch locationInView: [touch view]];
    if(startTouchPoint.x != endlocation.x && startTouchPoint.y != endlocation.y) {
        CGPoint touchPoint = [touch locationInView: [touch view]];
        touchPoint = [[CCDirector sharedDirector] convertToGL:touchPoint];
        
        [self calcAngleAndRotateObjectStartingAtPoint:sprite_Spider.position endingAtPoint:touchPoint];
    }
}

在此处输入图像描述

这是我的蜘蛛,我只想在那些红线之间接触。我怎样才能实现它。

4

2 回答 2

0

每次在蜘蛛面前做一个假设的矩形,用这个方法检测触摸

CGRectContainsPoint(<rect>,<point>)

如果触摸在矩形内,请执行任何操作

于 2013-01-28T08:00:59.343 回答
0

在你的情况下,我会选择 UITapGestureRecognizer 并实现委托方法

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer

在所有其他地方,您应该在 NO 和 YES 之间的任何地方返回 false。

您还可以检测点击手势的不同阶段

于 2013-01-28T07:54:37.673 回答