Sprite kit CGPathMoveToPoint/CGPathAddLineToPoint方法参数令人困惑
我使用这里提供的答案为我的精灵节点创建物理体的多边形 但是CGPathMoveToPoint/CGPathAddLinetoPoint方法的偏移量参数令人困惑(我在苹果的文档中也找不到引用) 在脚本生成的代码中,offsetX和offsetY定义为:Sprite kit CGPathMoveToPoint/CGPathAddLineToPoint方法参数令人困惑,sprite-kit,skspritenode,skphysicsbody,cgpathref,Sprite Kit,Skspritenode,Skphysicsbody,Cgpathref,我使用这里提供的答案为我的精灵节点创建物理体的多边形 但是CGPathMoveToPoint/CGPathAddLinetoPoint方法的偏移量参数令人困惑(我在苹果的文档中也找不到引用) 在脚本生成的代码中,offsetX和offsetY定义为: CGFloat offsetX = sprite.frame.size.width * sprite.anchorPoint.x; CGFloat offsetY = sprite.frame.size.height * sprite.anchor
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)替换变量 你的问题是关于物理体的,所以锚定点在这种情况下不适用。物理实体0,0坐标始终相对于节点的宽度和高度居中。因此,更改节点的定位点会影响其坐标的居中方式,但不会影响物理实体