在class HelloWorld : public cocos2d::CCLayer中添加
void draw();
實現:
void HelloWorld::draw() { CCSize s = CCDirector::sharedDirector()->getWinSize(); CCPointArray *array = CCPointArray::create(20); array->addControlPoint(ccp(0, 0)); array->addControlPoint(ccp(80, 80)); array->addControlPoint(ccp(s.width - 80, 80)); array->addControlPoint(ccp(s.width - 80, s.height - 80)); array->addControlPoint(ccp(80, s.height - 80)); array->addControlPoint(ccp(80, 80)); array->addControlPoint(ccp(s.width / 2, s.height / 2)); CCPointArray *array2 = CCPointArray::create(20); array2->addControlPoint(ccp(s.width / 2, 30)); array2->addControlPoint(ccp(s.width -80, 30)); array2->addControlPoint(ccp(s.width - 80, s.height - 80)); array2->addControlPoint(ccp(s.width / 2, s.height - 80)); array2->addControlPoint(ccp(s.width / 2, 30)); //個人理解是初始化用來存放點的棧 kmGLPushMatrix(); //定義棧的大小 kmGLTranslatef(50, 50, 0); //繪制曲線 ccDrawCatmullRom(array, 50); //繪制完后彈出所存放的點 kmGLPopMatrix(); //由於上面只是彈出並不是釋放,所以仍然可以通過點棧來繪制曲線 ccDrawCatmullRom(array2,50); }
然后直接運行就可以了
補充: