本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
// 调试辅助类主要辅助box2d中物体的调试,通过绘制不同的调试辅助的形状,来监控并改正物体行为的正确性
///cocos2d-x-3.0alpha0/external/Box2D/Common // 调试辅助类主要辅助box2d中物体的调试,通过绘制不同的调试辅助的形状,来监控并改正物体行为的正确性 #include <Box2D/Common/b2Math.h> /// 调试绘制的颜色,每个值都在[0,1]之间 struct b2Color { b2Color() {} //默认构造函数 b2Color(float32 r, float32 g, float32 b) : r(r), g(g), b(b) {} // 构造函数 参数说明: r : 红色值部分 g :绿色值部分 b :蓝色值部分 void Set(float32 ri, float32 gi, float32 bi) { r = ri; g = gi; b = bi; } //:设置颜色函数 参数说明: r : 红色值部分 g :绿色值部分 b :蓝色值部分 float32 r, g, b; //代表红、绿、蓝的变量 }; /// //在b2World中实现并注册这个类,以便提供调试绘制不同的物理实体在你的游戏中 class b2Draw { public: b2Draw(); //构造函数 virtual ~b2Draw() {} //析构函数 enum { e_shapeBit = 0x0001, ///< 绘制形状 e_jointBit = 0x0002, ///<绘制关节联系 e_aabbBit = 0x0004, ///< 绘制轴对齐边框 e_pairBit = 0x0008, ///< 绘制broad-phase pairs e_centerOfMassBit = 0x0010 ///< 绘制质心框架 }; /// 设置绘制标志位 void SetFlags(uint32 flags); /// 获得绘制标志位 uint32 GetFlags() const; /// 追加绘制标志位 void AppendFlags(uint32 flags); /// 从当前标志中清除标志 void ClearFlags(uint32 flags); /// 按照提供的顶点绘制逆时针方式闭合的多边形 参数说明: vertices :顶点 vertextexCount: 顶点数量 color : 颜色 virtual void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color) = 0; ///按照提供的顶点绘制逆时针方式闭合的并填充颜色的多边形 参数说明: vertices :顶点 vertextexCount: 顶点数量 color : 颜色 virtual void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color) = 0; ///绘制一个圆 参数说明: center :向量 radius : 半径 color : 颜色 virtual void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color) = 0; ///:绘制一个填充颜色的圆 参数说明: center :向量 radius : 半径 color : 颜色 virtual void DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color) = 0; ///绘制一段线段 参数说明: p1 :开始点 p2 : 结束点 color : 颜色 virtual void DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color) = 0; /// :绘制一个变换,选择你的长度比例。 /// @param xf 变换 virtual void DrawTransform(const b2Transform& xf) = 0; protected: uint32 m_drawFlags; };