如何在cocos2dx中绘制任意曲线

时间:2013-12-06 02:17:16

标签: c++ cocos2d-x curve

我正在开发基于cocos2dx的游戏,现在我需要在手指在屏幕上移动时绘制任意曲线,然后曲线将成为我的英雄走过的路径。任何想法都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

曲线是连线。
所以你可以使用连线绘制曲线。

累积cctouchesmove/cctouchemove事件函数中的点数。
制作线精灵,添加并绘制它们。

并且cocos2d-x也有曲线类。 如果您使用它们,您可以轻松地执行操作。

CCCardinalSplineTo
CCCardinalSplineBy
CCCatmullRomTo
CCCatmullRomBy
CCBezierBy
CCBezierTo

对于绘图,这是示例代码。

void HelloWorld::draw()  
{  
    // move to 50,50 since the "by" path will start at 50,50  
    kmGLPushMatrix();
    kmGLTranslatef(50, 50, 0);
    ccDrawCardinalSpline(m_pArray, 7, 100);

    kmGLPopMatrix();

    CCSize s = CCDirector::sharedDirector()->getWinSize();  

    kmGLPushMatrix();  
    kmGLTranslatef(s.width/2, 50, 0);  
    ccDrawCardinalSpline(m_pArray, 1, 100);  
    kmGLPopMatrix();  
}