用cocos2d-x绘制光滑的Bezier曲线

R4j*_*R4j 2 c++ cocos2d-x cocos2d-x-3.0

这可能与此问题重复,但我不知道如何在我的应用程序中应用此方法,以及我应该在cocos2d-x中使用哪种方法来绘制Bezier曲线.我的应用程序应该允许用户在触摸画布时绘制线条和曲线.我怎样才能做到这一点?

Joe*_*ara 5

从Cocos2dx v3.3开始,您可以使用DrawNode绘制Bezier曲线.检查DrawPrimitivesTest.cpp,它非常易于使用.这只是从上述文件中提取的示例脚本.您可以在场景中的任何位置使用它:

auto draw = DrawNode::create();
addChild(draw, 10);

auto s = Director::getInstance()->getWinSize();
draw->drawQuadBezier(Vec2(0, s.height), Vec2(s.width/2, s.height/2), Vec2(s.width, s.height), 50, Color4F(CCRANDOM_0_1(), CCRANDOM_0_1(), CCRANDOM_0_1(), 0.5));  
draw->drawCubicBezier(VisibleRect::center(), Vec2(VisibleRect::center().x+30,VisibleRect::center().y+50), Vec2(VisibleRect::center().x+60,VisibleRect::center().y-50),VisibleRect::right(),100, Color4F(CCRANDOM_0_1(), CCRANDOM_0_1(), CCRANDOM_0_1(), 0.5));
Run Code Online (Sandbox Code Playgroud)