本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
// 在同一个批处理节点里面绘制点、线段、多边形
///cocos2d-x-3.0alpha0/cocos2dx/draw_nodes // 在同一个批处理节点里面绘制 点、线段、多边形 /* * Code copied & pasted from SpacePatrol game https://github.com/slembcke/SpacePatrol //代码是从 ...... 地方复制过来的 * * 重新命名,增加了一些cocos2d的变化 * */ #ifndef __CCDRAWNODES_CCDRAW_NODE_H__ #define __CCDRAWNODES_CCDRAW_NODE_H__ #include "base_nodes/CCNode.h" #include "ccTypes.h" NS_CC_BEGIN /** DrawNode Node可以绘制 dots(点), segments(线段) 、 polygons(多边形). 比 "drawing primitives" 要迅速的多,因为它所有的东西都在一个单一的批节点里面绘制 . @since v2.1 */ class CC_DLL DrawNode : public Node { public: /** 创建并初始化一个 DrawNode 节点 */ static DrawNode* create(); /** * @js ctor */ DrawNode(); /** * @js NA * @lua NA */ virtual ~DrawNode(); virtual bool init(); /** 在指定的位置使用 给定的半径和颜色 绘制一个点 */ void drawDot(const Point &pos, float radius, const Color4F &color); /** 使用指定的 radius、color ,绘制一个segment */ void drawSegment(const Point &from, const Point &to, float radius, const Color4F &color); /** 使用 填充颜色和线条颜色 ,绘制多边形 * @code * When this function bound into js or lua,the parameter will be changed * In js: var drawPolygon(var Arrayofpoints, var fillColor, var width, var borderColor) * In lua:local drawPolygon(local pointTable,local tableCount,local fillColor,local width,local borderColor) * @endcode */ void drawPolygon(Point *verts, unsigned int count, const Color4F &fillColor, float borderWidth, const Color4F &borderColor); /**在节点缓冲区清除几何形状. */ void clear(); /** * @js NA * @lua NA */ const BlendFunc& getBlendFunc() const; /** * @code * When this function bound into js or lua,the parameter will be changed * In js: var setBlendFunc(var src, var dst) * @endcode * @lua NA */ void setBlendFunc(const BlendFunc &blendFunc); /**即将在android上显示的听事件 * @js NA * @lua NA */ void listenBackToForeground(Object *obj); // Overrides virtual void draw() override; protected: void ensureCapacity(int count); void render(); GLuint _vao; GLuint _vbo; int _bufferCapacity; GLsizei _bufferCount; V2F_C4B_T2F *_buffer; BlendFunc _blendFunc; bool _dirty; }; NS_CC_END #endif // __CCDRAWNODES_CCDRAW_NODE_H__