Должно быть просто.
Я пытаюсь нарисовать одну прямую линию, используя UITouch и Spritekit. Однако при вызове touchesmoved создается несколько строк вместо одной. Используемый код приведен ниже:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
positionInScene1 = [touch locationInNode:self];
pathToDraw = CGPathCreateMutable();
selectorLine = [SKShapeNode node];
selectorLine.strokeColor = [SKColor greenColor];
selectorLine.lineWidth = 5;
[self addChild:selectorLine];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
pathToDraw2 = CGPathCreateMutable();
UITouch* touch = [touches anyObject];
positionInScene2 = [touch locationInNode:self];
CGPathMoveToPoint(pathToDraw2, NULL, positionInScene1.x, positionInScene1.y);
CGPathAddLineToPoint(pathToDraw2, NULL, positionInScene2.x, positionInScene2.y);
CGPathCloseSubpath(pathToDraw);
selectorLine.path = pathToDraw;
}
Если я перееду
CGPathAddLineToPoint(pathToDraw, NULL, positionInScene2.x, positionInScene2.y);
для touchesEnd создается одна строка, но только после того, как пользователь завершит касание. Я хочу, чтобы пользователь видел, как линия рисуется при касании.
Спасибо, Дуг