示例#1
0
void drawTPlayer(Track * track,CCPoint * timelineTrackRatio,CCSize * timeLineSize,float * addtionalDistance)
{
	float trackHeight=track->getHeight();
	float radius=timeLineSize->height/5;
	ccDrawColor4F(0.75f,0.0f,0.0f,0.8f);
	float newX=(track->_player->getPositionX() + *addtionalDistance)* timelineTrackRatio->x;
	float newY=timeLineSize->height/2 + trackHeight;
	
	ccDrawSolidCircle(ccp(newX,newY),radius,CC_DEGREES_TO_RADIANS(90),50,false);
}
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();
}