void RippleNode::draw() { CCNodeRGBA::draw(); ccGLBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); ccDrawInit(); ccDrawColor4B(getColor().r, getColor().g, getColor().b, getOpacity()); glLineWidth(3.f * SCREEN_SCALE()); ccPointSize(3.f * SCREEN_SCALE() * 0.5f); Rig rig; rig.reserve(RIG_VERTEXES()); for(int i = 0; i < RIG_VERTEXES(); i++) { CCPoint vertex = ccpRotateByAngle(CCPointMake(0, 200.f * SCREEN_SCALE()), CCPointZero, M_PI * 2 * i / RIG_VERTEXES() + getRotation()); rig.push_back(vertex); } ccDrawPoly(&rig[0], rig.size(), true); ccDrawPoint(CCPointZero); ccDrawFree(); ccGLBlendFunc(CC_BLEND_SRC, CC_BLEND_DST); CC_INCREMENT_GL_DRAWS(1); }
void Gleed2DLayer::draw() { SpriteBatchNode::draw(); ccDrawInit(); int numItem=_layerInfo->Items->count(); for(int i=0;i<numItem;i++) { Gleed2DItem * item=(Gleed2DItem *)_layerInfo->Items->getObjectAtIndex(i); switch (item->_itemType) { case GLEED2D_ITEM_CIRCLE: { Gleed2DCircleItem * circleItem=(Gleed2DCircleItem *)item; ccDrawColor4B(circleItem->FillColor.r,circleItem->FillColor.g,circleItem->FillColor.b,circleItem->FillColor.a); ccDrawSolidCircle(Point(circleItem->Position.x,-(circleItem->Position.y)) ,circleItem->Radius ,0 ,25 ); }break; case GLEED2D_ITEM_RECTANGLE: { Gleed2DRectangleItem * rectItem=(Gleed2DRectangleItem *)item; ccDrawColor4B(rectItem->FillColor.r,rectItem->FillColor.g,rectItem->FillColor.b,rectItem->FillColor.a); ccDrawSolidRect(Point(rectItem->Position.x,-(rectItem->Position.y)) ,Point(rectItem->Position.x+rectItem->Width,-(rectItem->Position.y)-rectItem->Height) ,Color4F(rectItem->FillColor)); }break; case GLEED2D_ITEM_PATH: { Gleed2DPathItem * pathItem=(Gleed2DPathItem *)item; int numPoint=pathItem->WorldPoints.size()-1; ccDrawColor4B(pathItem->LineColor.r,pathItem->LineColor.g,pathItem->LineColor.b,pathItem->LineColor.a); float old_width; glGetFloatv(GL_LINE_WIDTH,&old_width); glLineWidth(pathItem->LineWidth); for(int i=0;i<numPoint;i++) { ccDrawLine(Point(pathItem->WorldPoints[i].x,-(pathItem->WorldPoints[i].y)) ,Point(pathItem->WorldPoints[i+1].x,-(pathItem->WorldPoints[i+1].y))); } glLineWidth(old_width); }break; default: break; } } ccDrawFree(); }