Мне удалось нарисовать линию с массивом моих случайных CGPoints.Линия рисования с помощью SpriteKit и обнаружение столкновения
-(void)drawLine
{
SKShapeNode *mainLine = [SKShapeNode node];
CGMutablePathRef pathToDraw = CGPathCreateMutable();
CGPathMoveToPoint(pathToDraw, NULL, 0, 0);
for(int i;i<pointsInMyView.count;i++)
{
CGPoint myPoint = [pointsInMyView[i] CGPointValue];
CGPathAddLineToPoint(pathToDraw, NULL, myPoint.x, myPoint.y);
mainLine.path = pathToDraw;
}
[mainLine setLineWidth:40];
[mainLine setStrokeColor:[SKColor whiteColor]];
mainLine.name = @"mainLine";
[self addChild:mainLine];
}
Как вы можете видеть, я рисую SKShapeNode. Моя цель - проверить столкновение моего SKSpriteNode с моей линией. Но, конечно, этот узел формы создает кадр, содержащий все точки моей строки, и в этом случае мой ShapeNode на всем моем представлении. Мой SpriteNode все время обнаруживает столкновение с этим ShapeNode. Я должен нарисовать несколько разных ShapeNodes, я думаю, поэтому каждый узел будет иметь свой собственный фрейм. Но если я так делаю, моя линия не связана. Есть ли какое-то решение, чтобы нарисовать этот узел по узлу и по-прежнему получить хорошую линию.
Если ваш SKShapeNode составлен из случайных точек, он будет распространяться по всему экрану (я только что попробовал). Я думаю, вам придется разработать алгоритм, чтобы убедиться, что линия не пересекает себя и образует относительно простую линию. Можете ли вы разместить свой код, который генерирует '[pointsInMyView]'? –
Я знаю, что мой узел формы - все, что связано с моим экраном. Дело в том, что мне нужны эти случайные точки. Моя линия - это просто большой узел формы с векторными линиями от одной точки к другой. Хорошо. Но теперь я работаю над тем, как обнаружить столкновение с моим местоположением касания и строкой, которую я нарисовал. Проблема в том, что столкновение обнаруживается все время, когда я внутри кадра узла. Я хочу, чтобы мое прикосновение не отвечало на пустые пиксели моего узла фигуры, только на пикселях, где моя линия рисована. Есть идеи? – user3215624
Вы пытаетесь обнаружить прикосновение к линии или другому спрайту, связав линии? –