所以我用draw方法创建了一个圆圈:
glLineWidth(16);
glColor4ub(0, 255, 0, 255);
drawCircle( ccp(s.width/2, s.height/2), 100, 0, 10, NO);
我想知道是否可以将此形状转换为带动画的矩形。谢谢 。对不起我的英语我是法国人:/
答案 0 :(得分:2)
为简单起见,我使用4个立方贝塞尔曲线 - 每个象限的圆圈一条曲线。 (这不是一个完美的圆圈,但也不是100段圆圈!)然后,使用cocos2d提供的schedule:
功能,我会逐渐移动每条曲线的控制点,直到它们为止使用曲线的原点和目的地垂直或水平排列。这会将曲线变成4条直线:一个矩形!
嗯,确切地说是一个正方形。您还必须移动所有4条曲线的原点和目的地,以形成一个不是正方形的矩形,但您会得到我希望的想法吗?
有关其他信息,请参阅以下链接:
ccDrawCubicBezier
- http://www.cocos2d-iphone.org/api-ref/2.0.0/_c_c_drawing_primitives_8h.html#a5a391711c0aa611a06167bdd7637571f schedule:
示例代码 - http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:lesson_2._your_first_game#making_things_move 编辑:添加图片
d =根据以下公式计算的值:http://www.cgafaq.info/wiki/Bezier_Circle
开始 , 控制1 , 控制2 和 end 是在cocos2d中制作三次贝塞尔曲线所需的4个点。
答案 1 :(得分:0)
您必须为此编写代码。
例如,您可以创建围绕圆圈的多个控制点。这些控制点中的每一个可以包括3个点。两个点代表圆上的两个点,一个点控制两点之间绘制的线的曲线。现在,您可以为曲线上的控制点之间的运动设置动画,使它们移动成为矩形上的控制点,同时为第三个控制点的运动设置动画,使边缘从曲线变为直线。 / p>