[Cocos2d-x] CCDrawNode クラスを使用して線、図形を描画する
2013.5.25 追記
CCDrawNode を Android で使用する場合、「色が正しく表示されない」「透過ができない」という問題があります。これを解消するには CCDrawNode::render メソッドの下記行の GL_FALSE を GL_TRUE に修正してください。
glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_FALSE, sizeof(ccV2F_C4B_T2F), (GLvoid *)offsetof(ccV2F_C4B_T2F, colors));
参考 URL
CCDrawnode not respecting alpha?
CCDrawNode クラスを使用して線や図形を描画する方法です。レイヤに追加した CCDrawNode のインスタンスに draw 系のメソッドを使用して簡単に線や図形を描画することができます。
—– 追記ここまで —–
まず、CCDrawNode をレイヤに追加します。
CCSize size = CCDirector::sharedDirector()->getWinSize(); CCDrawNode* node = CCDrawNode::create(); node->setPosition(ccp(size.width/2, size.height/2)); this->addChild(node);
線を描画する
CCDrawNode::drawSegment メソッドで線を描画します。引数は開始点、終了点、線の太さ、色を指定します。
ccColor4F yellow = ccc4FFromccc3B(ccYELLOW); node->drawSegment(ccp(-size.width/2, -size.height/2), ccp(size.width/2, size.height/2), 10, yellow);
図形を描画する
CCDrawNode::drawPolygon メソッドで多角形を描画できます。引数は多角形の各点、点の数、塗りつぶす色、線の太さ、線の色をしています。
CCPoint verts[] = {ccp(0, 50), ccp(50, -50), ccp(-50, -50)}; ccColor4F red = ccc4FFromccc3B(ccRED); ccColor4F yellow = ccc4FFromccc3B(ccYELLOW); node->drawPolygon(verts, 3, red, 5, yellow);
点を描画
CCDrawNode::drawDot メソッドで点を描画できます。引数は点の中心点、半径、色を指定します。
そろそろ、ただ点を描画するだけだとつまらないのでタイル状に並べてみました。
float r = 20.0f; for (float x=-size.width/2; xdrawDot(ccp(x, y), r, ccc4FFromccc3B(ccBLUE)); } }
関連する投稿
One comment
コメントをどうぞ
Additional comments powered by BackType
1impecunious…
…