Je me suis plongé dans le nouveau Sprite Kit d'Apple, et je l'utilise depuis un moment maintenant. Cependant, j'ai rencontré un problème lorsque j'ai essayé de dessiner une trajectoire incurvée pour un SKShapeNode
. Il semble dessiner une ligne droite à la place.
Voici un exemple très simple du problème que j'ai rencontré - j'ai essayé de dessiner une CGPath
pour un 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);
Voici mon dessin ASCII de ce qu'il fait (Désolé, je n'ai pas encore la réputation suffisante pour poster une image réelle) :
---------------------------------------------------------------------------------
| EXPECTED RESULT | ACTUAL RESULT |
---------------------------------------------------------------------------------
| | |
| __----__ | |
| / \ <- Curve | ? |
| / \ | ____________ |
| \ / | \ / |
| \ / | \ / |
| \ / | \ / |
| \ / | \ / |
| \ / | \ / |
| \/ | \/ |
---------------------------------------------------------------------------------
Comme vous pouvez le voir, cette ligne de code ne dessine pas la courbe que je souhaite :
CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 0);
J'ai essayé d'utiliser CGPathAddArcToPoint(...)
qui fonctionne et serait un bon substitut dans cet exemple. Cependant, pour mes besoins réels, je dois être capable de dessiner une courbe quadruple.
Le CGPath semble dessiner tout ce qui est approprié, à l'exception de CGPathAddQuadCurveToPoint(...)
et aussi, CGPathAddCurveToPoint(...)
- où ils dessinent simplement une ligne droite entre les points à la place.
Quelqu'un a-t-il une idée de la nature du problème ? Ou est-ce un bug de Sprite Kit ?