[英]2D polygon animation in iPhone
我不确定“2d多边形动画”是否是我想要实现的正确术语,但基本上我想要类似于3D变形的动画,但是使用2d多边形,这样我有多个相同多边形的“帧”,顶点在不同的位置和它们之间的插值来实现动画。
在我开始自己实现它之前,我想知道是否有一些库或者某些东西可以在iOS中实现。 至少在Cocos2D中我没有找到这样的功能。
定义多边形的编辑器也是很好的工具,它可以导出到XML或其他东西,以便轻松地将其导入我的应用程序。 应该有一个专业的编辑软件来做到这一点,对吧? 这应该是一个非常普遍的事情? 我试图谷歌,但我想我错过了正确的关键字。
核心动画可以做到 - 包含在SDK中。 我想你需要看一下CAShapeLayer。
CAShapeLayer会这样做。 你要做的是创建图层并将其path
属性分配给path1,它是一个CGPathRef对象,如下所示:
// four-sided polygon
CGMutablePathRef path1 = CGPathCreateMutable();
CGPathMoveToPoint(path1, NULL, 160, 290);
CGPathAddLineToPoint(path1, NULL, 170, 300);
CGPathAddLineToPoint(path1, NULL, 160, 310);
CGPathAddLineToPoint(path1, NULL, 150, 300);
CAShapeLayer* bgPoly = [CAShapeLayer layer];
bgPoly.path = path1;
bgPoly.backgroundColor = [UIColor blueColor].CGColor;
CGPathRelease(path1);
然后将多边形path
更改为另一个CGPathRef对象path2,您将得到您想要的:
// morphs to a six-sided polygon
CGMutablePathRef path2 = CGPathCreateMutable();
CGPathMoveToPoint(path2, NULL, 160, 290);
CGPathAddLineToPoint(path2, NULL, 170, 300);
CGPathAddLineToPoint(path2, NULL, 170, 300);
CGPathAddLineToPoint(path2, NULL, 160, 310);
CGPathAddLineToPoint(path2, NULL, 150, 300);
CGPathAddLineToPoint(path2, NULL, 150, 300);
bgPoly.path = path2;
CGPathRelease(path2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.