cocos2dx实现游戏属性雷达图
2015-09-09 16:44
746 查看
游戏中常见的属性雷达图
那么在cocos2dx中如何实现?并且可以根据属性的变化来变化圆中的五边形偏向。
首先想到的是DrawNode类来实现基本绘图,先在屏幕上画一个圆,再画等分该圆的五条线,最后根据线上五点的坐标来确定五边形。
运行效果:
那么在cocos2dx中如何实现?并且可以根据属性的变化来变化圆中的五边形偏向。
首先想到的是DrawNode类来实现基本绘图,先在屏幕上画一个圆,再画等分该圆的五条线,最后根据线上五点的坐标来确定五边形。
//创建一个父节点node,使得该雷达图位于屏幕的中心 auto node = Node::create(); node->setPosition(visibleSize.width/2,visibleSize.height/2); this->addChild(node); //创建DrawNode的对象draw,用该对象来实现基本绘图 auto draw = DrawNode::create(); node->addChild(draw); //属性的值的数组,以后只要在该数组上修改属性值即可实现五边形的偏向随属性的变化而变化 float l[]={30,40,60,90,30}; //点数组 Vec2 vecs[5]; //利用数学函数确定五边形的点的坐标 vecs[0] = Vec2(-l[0]*cos(M_PI/180*18),l[0]*sin(M_PI/180*18));//Point(-100,0); vecs[1] = Vec2(l[1]*cos(M_PI/180*90),l[1]*sin(M_PI/180*90));//Point(0,100); vecs[2] = Vec2(l[2]*cos(M_PI/180*18),l[2]*sin(M_PI/180*18));//Point(100,0); vecs[3] = Vec2(l[3]*cos(M_PI/180*54),-l[3]*sin(M_PI/180*54));//Point(50,-100); vecs[4] = Vec2(-l[4]*cos(M_PI/180*54),-l[4]*sin(M_PI/180*54));//Point(-50,-100); //画圆(点) draw->drawDot(Point(0,0), 100, Color4F(0.85,0.65,0.47, 1)); //画多边形(五边形) draw->drawPolygon(vecs, 5, Color4F(0.94,0.92,0.68,1), 0, Color4F(0,0,0,1) ); //画等分该圆的五条线 for(int i=0;i<5;i++) l[i]=100; vecs[0] = Vec2(-l[0]*cos(M_PI/180*18),l[0]*sin(M_PI/180*18)); vecs[1] = Vec2(l[1]*cos(M_PI/180*90),l[1]*sin(M_PI/180*90)); vecs[2] = Vec2(l[2]*cos(M_PI/180*18),l[2]*sin(M_PI/180*18)); vecs[3] = Vec2(l[3]*cos(M_PI/180*54),-l[3]*sin(M_PI/180*54)); vecs[4] = Vec2(-l[4]*cos(M_PI/180*54),-l[4]*sin(M_PI/180*54)); draw->drawSegment(vecs[0], Vec2(0, 0), 0.5, Color4F(0.55, 0.41, 0.25, 1)); draw->drawSegment(vecs[1], Vec2(0, 0), 0.5, Color4F(0.55, 0.41, 0.25, 1)); draw->drawSegment(vecs[2], Vec2(0, 0), 0.5, Color4F(0.55, 0.41, 0.25, 1)); draw->drawSegment(vecs[3], Vec2(0, 0), 0.5, Color4F(0.55, 0.41, 0.25, 1)); draw->drawSegment(vecs[4], Vec2(0, 0), 0.5, Color4F(0.55, 0.41, 0.25, 1));
运行效果:
相关文章推荐
- Cocos2d-x中背景音乐和音效使用实例
- Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验
- Cocos2d-x UI开发之CCControlPotentiometer控件类使用实例
- Cocos2d-x UI开发之文本类使用实例
- Cocos2d-x保存用户游戏数据之XML文件是否存在问题判断方法
- Cocos2d-x UI开发之菜单类使用实例
- Cocos2d-x UI开发之CCControlButton控件类实例
- Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系
- Cocos2d-x UI开发之CCControlColourPicker控件类使用实例
- Cocos2d-x学习笔记之CCLayerColor层的使用实例
- Cocos2d-x Schedule定时器的使用实例
- Cocos2d-x中使用CCScrollView来实现关卡选择实例
- Cocos2d-x中CCEditBox文本输入框的使用实例
- cocos2d-x学习笔记之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex场景层介绍
- Cocos2d-x UI开发之CCControlSlider控件类使用实例
- Cocos2d-x学习笔记之开发环境搭建
- Cocos2d-x学习笔记之Hello World!
- Cocos2d-x的内存管理总结
- Cocos2d-x 3.0中集成社交分享ShareSDK的详细步骤和常见问题解决
- Cocos2d-x入门教程(详细的实例和讲解)