本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-x节点(CCDrawNode.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 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__