我使用這裏提供的答案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);
當Sprite節點在屏幕上移動時,這個偏移(如果需要)會改變嗎?
如果父級場景的錨點在左上角,那麼這些方法的偏移量應該是多少?