SKShapeNode *shapeNodePos = [SKShapeNode node];CGMutablePathref pathPos = CGPathCreateMutable();CGPathAddRect(pathPos,NulL,CGRectMake(50,50,50));shapeNodePos.path = pathPos;CGPathRelease(pathPos);NSLog(@"Frame pos = (%f,%f,%f)",shapeNodePos.frame.origin.x,shapeNodePos.frame.origin.y,shapeNodePos.frame.size.wIDth,shapeNodePos.frame.size.height);
结果是:
Frame pos = (0.000000,0.000000,100.000000,100.000000)
但是,我希望SKShapeNode.frame仅限于CGPath内容:
Frame pos = (50.000000,50.000000,50.000000)
它是SpriteKit中的错误还是实际上是预期的行为?如果绘制的小CGPath矩形距离(0,0)点相当远,是否也会对性能产生负面影响,或者Sprite Kit会忽略帧的空白区域?
提前致谢!
解决方法 从我的测试中看来,除非你在创建CGMutablePathref之前专门设置节点的位置,否则起始点将始终为(0,0).但是,事先设置节点的位置可以得到预期的结果.SKShapeNode *shapeNodePos = [SKShapeNode node];shapeNodePos.position = CGPointMake(50,50); // <<< Set node's positionCGMutablePathref pathPos = CGPathCreateMutable();CGPathAddRect(pathPos,CGRectMake(0,50));shapeNodePos.path = pathPos;CGPathRelease(pathPos);
NSLog现在打印
总结Frame pos = (50.000000,50.000000)
以上是内存溢出为你收集整理的ios – SKShapeNode帧包含点(0,0),即使CGPath没有全部内容,希望文章能够帮你解决ios – SKShapeNode帧包含点(0,0),即使CGPath没有所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)