2015-04-26 66 views
1

我想让用户触摸屏幕,我把这些触摸的大小和位置,并为他提供一个图像“好像它”是他的指纹,但与几乎相同的形状和他的手指我需要模仿手指触摸,绘制触摸的印记

我实现了的touchesBegan功能与touchesMoves功能如下的大小(两者都具有相同的码)

,因为它是所示的touchSize下面是实际的用户触摸到的尺寸屏幕和它保存的触摸半径,然后我创建了一个使用SKshapeNode和颜色的圆形形状,并将其显示在屏幕上

它的颜色在这里我感动,但是当我移动触摸规模开始变大,我不能让它吸取手指

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
/* Called when a touch begins*/ 

for (UITouch *touch in touches) { 
    CGPoint location = [touch locationInNode:self]; 
CGFloat touchSize = [[touch valueForKey:@"pathMajorRadius"] floatValue]; 
     SKShapeNode *touchedLocation = [SKShapeNode shapeNodeWithCircleOfRadius:touchSize/4]; 
     touchedLocation.fillColor = [SKColor whiteColor]; 
     touchedLocation.position = location; 
     [self addChild:touchedLocation]; 
} 

}

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

for (UITouch *touch in touches) { 
    CGPoint location = [touch locationInNode:self]; 
CGFloat touchSize = [[touch valueForKey:@"pathMajorRadius"] floatValue]; 
     isScreenTouched = YES; 
     SKShapeNode *touchedLocation = [SKShapeNode shapeNodeWithCircleOfRadius:touchSize/4]; 
     touchedLocation.fillColor = [SKColor whiteColor]; 
     touchedLocation.position = location; 
     touchedLocation.name = @"AnamelPrint"; 
     [self addChild:touchedLocation]; 
    } 
} 
+0

小混乱......如果你只是想要一个手指的印记,为什么你使用touchesMoved? – sangony

+0

嗯,我是iOS的初学者。我使用了touchesMoved,因为当我只使用touchesBegan时,它显示出一个小圆形并且我希望它是手指的形状 – Sara

+0

您意识到屏幕实际上不能“读取”指纹。我建议你拍一张指纹图像并放置在触摸位置,以模拟你正在尝试做什么。 – sangony

回答

0

的形状节点您代码是相当多点上,但我建议你改变这行代码:

SKShapeNode *touchedLocation = [SKShapeNode shapeNodeWithCircleOfRadius:touchSize/4]; 

这样:

SKShapeNode *touchedLocation = [SKShapeNode shapeNodeWithCircleOfRadius:touchSize]; 

这会根据触摸半径为您提供合适的尺寸。另外,根据我所了解的你正在尝试做的事情,你不需要在touchesMoved方法中有任何东西。除非你想在手指移动时保持绘制圆圈。