所以我用draw方法创建了一个圆:
glLineWidth(16);
glColor4ub(0, 255, 0, 255);
drawCircle( ccp(s.width/2, s.height/2), 100, 0, 10, NO);
我想知道是否可以将此形状转换为带有动画的矩形形状。谢谢你 。对不起我的英语我是法国人:/
所以我用draw方法创建了一个圆:
glLineWidth(16);
glColor4ub(0, 255, 0, 255);
drawCircle( ccp(s.width/2, s.height/2), 100, 0, 10, NO);
我想知道是否可以将此形状转换为带有动画的矩形形状。谢谢你 。对不起我的英语我是法国人:/
为简单起见,我将使用 4 条三次贝塞尔曲线 - 每个圆的象限一条曲线。(这不是一个完美的圆,但也不是一个 100 段的圆!)然后,使用schedule:
cocos2d 提供的功能,我会随着时间的推移逐渐移动每条曲线的控制点,直到它们与曲线的起点和终点垂直或水平对齐. 这会将曲线变成 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 = d 值从以下公式计算得出: http ://www.cgafaq.info/wiki/Bezier_Circle
start、 control 1、 control 2和end是在 cocos2d 中制作三次贝塞尔曲线所需的 4 个点。
您将不得不为此编写代码。
例如,您可以在圆周围创建多个控制点。这些控制点中的每一个都可以由 3 个点组成。两个点代表圆上的两个点,一个点控制在两点之间绘制的线的曲线。现在为曲线上控制点之间的运动设置动画,使它们移动成为矩形上的控制点,同时为第三个控制点的运动设置动画,使边缘从曲线变为直线。