Я использую предоставленный здесь ответ SpriteKit's SKPhysicsBody with polygon helper tool для создания полигонов физических тел для моих узлов-спрайтов.Параметры метода CGPathMoveToPoint/CGPathAddLineToPoint запутывают
Но смещение параметров методов CGPathMoveToPoint/CGPathAddLinetoPoint запутывает (я также не могу найти ссылку в документе Apple).
В коде, созданном сценарием там, OffsetX и OffsetY определяются как:
CGFloat offsetX = sprite.frame.size.width * sprite.anchorPoint.x;
CGFloat offsetY = sprite.frame.size.height * sprite.anchorPoint.y;
В то время как в GIF, представленной там демонстрации, это:
CGFloat offsetX = sprite.frame.size.width/2;
CGFloat offsetY = sprite.frame.size.height/2;
Оба эти смещения используются для коррекции параметров в методах CGPathMoveToPoint/CGPathAddLinetoPoint, таких как:
CGPathMoveToPoint(path, NULL, 0 - offsetX, 0 - offsetY); (for the bottom left corner of the texture)
CGPathAddLineToPoint(path, NULL, 11 - offsetX, 0 - offsetY);
Зачем нам это смещение?
Для левого нижнего угла текстуры, почему я не могу представить только (0,0), как:
CGPathMoveToPoint (путь, NULL, 0, 0);
Будет ли это смещение (при необходимости) изменяться, когда узел спрайта перемещается по экрану?
Если опорная точка родительской сцены находится в верхнем левом углу, что должно быть смещением для этих методов?