Я вникал в новый Apple Sprite Kit и использовал его какое-то время.
Однако я столкнулся с проблемой при попытке нарисовать кривую путь для SKShapeNode
. Кажется, что это просто прямая линия.
Вот очень простой пример проблемы, которую я испытываю - экспериментируя с рисунком CGPath
для SKShapeNode
:
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 0);
CGPathAddLineToPoint(path, NULL, 50, -100);
CGPathCloseSubpath(path);
SKShapeNode *shape = [[SKShapeNode alloc]init];
shape.path = path;
[self addChild:shape];
CGPathRelease(path);
Вот мое искусство ASCII в том, что он делает (извините, у меня недостаточно репутации, чтобы опубликовать фактическое изображение):
---------------------------------------------------------------------------------
| EXPECTED RESULT | ACTUAL RESULT |
---------------------------------------------------------------------------------
| | |
| __----__ | |
| / \ <- Curve | ? |
| / \ | ____________ |
| \ / | \ / |
| \ / | \ / |
| \ / | \ / |
| \ / | \ / |
| \ / | \ / |
| \/ | \/ |
---------------------------------------------------------------------------------
Как вы можете видеть, он не рисует кривую, которую я хочу из этой строки кода:
CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 0);
Я попытался использовать CGPathAddArcToPoint(...)
, который работает, и был бы хорошим подспорьем в этом примере. Однако, для моих реальных потребностей, мне нужно иметь возможность рисовать квадроцикл.
Кажется, что CGPath рисует все, кроме CGPathAddQuadCurveToPoint(...)
, а также CGPathAddCurveToPoint(...)
- где они просто рисуют прямую линию между точками.
Кто-нибудь знает, в чем проблема? Или это ошибка с помощью Sprite Kit?