使用以下代码
创建一个固定大小的SKShapeNode矩形SKShapeNode *rect = [SKShapeNode shapeNodeWithRect: CGRectMake(0, 0, 100, 200)];
CGRect accumulatedFrame = rect.calculateAccumulatedFrame;
调试上面的代码,cumulativeFrame包含以下值:
origin=(x=-0.5, y=-0.5) size=(width=101, height=201)
为什么计算出的累积帧大于预期的100x200?
提前感谢任何暗示:)
代码示例:
SKShapeNode *rect = [SKShapeNode shapeNodeWithRect: CGRectMake(0, 0, 200, 100)];
CGRect accumulatedFrame = rect.calculateAccumulatedFrame;
CGRect frame = rect.frame;
调试器为累积帧属性返回 origin =(x = -0.5,y = -0.5)size =(width = 201,height = 101)
调试器为 frame propery
返回 origin =(x = -0.5,y = -0.5)size =(width = 201,height = 101) >使用原点> (0,0)只增加0.5到宽度和高度;似乎,sprite-kit返回一个累积的帧,它实际上包含节点并增加0.5,因此没有节点边界与累积帧的边界相交。在api参考中没有找到任何关于它的内容......
答案 0 :(得分:2)
我相信您正在处理的问题是,如果您定义了strokeColor
,那么边框描边会增加矩形的大小。
试试这段代码:
SKShapeNode *rect = [SKShapeNode shapeNodeWithRect: CGRectMake(0, 0, 200, 100)];
rect.strokeColor = nil;
您必须将笔划视为添加剂,并添加到形状的尺寸。