b2DebugDraw提供调试功能,由于Box2D中所有对象都是不可见的,要创建可见对象我们得用刚体定义中的userData属性来创建自己的图形,如果不创建自己的图形,则用b2DebugDraw类来实现物体的可见,方便调试。

闪吧新社区7uV`8a?1nC/

闪吧新社区&x:^7V0^${i x具体代码:

private function showDebug():void {//创建一个sprite,提供渲染var m_sprite:Sprite = new Sprite();addChild(m_sprite);var dbgSprite:Sprite = new Sprite();//给m_sprite添加一个子spritem_sprite.addChild(dbgSprite);var dbgDraw:b2DebugDraw = new b2DebugDraw();//将m_sprite作为dbgDraw的渲染spritedbgDraw.m_sprite = m_sprite;//设置比例为30,如果不设置则所有物体都会很小,box2D中以米为单位,1m=30像素dbgDraw.m_drawScale = physScale;//设置要显示的内容,每个标志代表一项dbgDraw.m_drawFlags = b2DebugDraw.e_aabbBit |b2DebugDraw.e_jointBit |b2DebugDraw.e_obbBit |b2DebugDraw.e_shapeBit;//绘制刚体所用线条的透明度dbgDraw.m_alpha = 1;//填充刚体所用颜色的透明度dbgDraw.m_fillAlpha = 0.3;//绘制刚体所用线条的粗细dbgDraw.m_lineThickness = 1;//从虚拟世界开始模拟world.SetDebugDraw(dbgDraw); }

b2DebugDraw类中有7个标志常量:闪吧新社区a"_ l#D1tP
        b2DebugDraw.e_aabbBit :表示显示刚体的边界盒闪吧新社区J(s@9w+]@i4`
           b2DebugDraw.e_jointBit :表示显示刚体相连时的节点和连线
Pk3kI t0            b2DebugDraw.e_obbBit :显示凸多边形的边界,不显示圆的边界
,w$e"x ` UZu0            b2DebugDraw.e_pairBit:draw broad-phase pairs(不知如何翻译是好用原文)闪吧新社区#ts3S d S
           b2DebugDraw.e_coreShapeBit:draw core (TOI) shapes
6TO%UbP0            b2DebugDraw.e_shapeBit:显示刚体的形状,不管是何种形状闪吧新社区+Y,FA;DT m9h@
           b2DebugDraw.e_centerOfMassBit:显示质量中心。重心?质心?

上面的代码我们可以设置绘制刚体的线条透明度,粗细,以及填充刚体颜色的透明度,但我们无法设置填充刚体所用的颜色,在Box2D中,默认有三中颜色来填充刚体,即红色,绿色,灰色。

;S0H4@'}M(y8f0 :~/s:Rk:u0           红色---------表示已经处于休眠状态的刚体闪吧新社区 mR|'t!dt)XY"^"e
          绿色---------表示静止的刚体,没有密度质量的刚体
-e�C8kiV`0           灰色---------表示正在移动的刚体

不过,我们可以修改b2World类中1060-1074 行的代码来修改这三种默认的颜色,b2World中的代码如下:

for (s = b.GetShapeList(); s; s = s.m_next) {if (b.IsStatic()){DrawShape(s, xf, new b2Color(0.5, 0.9, 0.5), core);}else if (b.IsSleeping()){DrawShape(s, xf, new b2Color(0.5, 0.5, 0.9), core);}else{DrawShape(s, xf, new b2Color(0.9, 0.9, 0.9), core);} }

这里实际是修改传递给b2Color实例的值,只需修改其构造函数中的三个对应的值即可。原文地址:http://space.flash8.net/space/?uid-628770-action-viewspace-itemid-432377

b2DebugDraw相关推荐

  1. b2DebugDraw到底是什么

    http://www.ladeng6666.com/blog/category/box2d/ b2DebugDraw到底是什么 我们已经学了很多关于Box2D的知识了,但是没仔细研究过天天都在用的b2 ...

  2. 使用b2DebugDraw

    ///  在前面的基础加上了b2DebugDraw  hellowWorld的例子也有b2DebugDraw 只不过把注释掉了 最新看帖子知道:  准确的说 :box2d里1m 等于flash 中的3 ...

  3. 关于box2d相关学习教程记录一下

    Box2D 2.0.1版本 认识Box2D世界 掉落的苹果--b2Body刚体 创建圆形刚体 创建静止不动的刚体 在运行时创建刚体 刚体的上衣--b2BodyDef.userData Box2D能再简 ...

  4. Box2dの自定义多边形

    注:点击鼠标添加Body,R键清空Body 原来博客园要注册才能看到swf的,附有截图 package {import Box2D.Collision.b2AABB;import Box2D.Coll ...

  5. (译)如何使用box2d来做碰撞检测(且仅用来做碰撞检测)

    原文链接地址:http://www.raywenderlich.com/606/how-to-use-box2d-for-just-collision-detection-with-cocos2d-i ...

  6. 【iOS-Cocos2d游戏开发之十一】使用Box2d物理系统以及在cocos2d框架添加Box2d物理系统lib包的方法...

    为什么80%的码农都做不了架构师?>>>     李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接:  http://www.himigam ...

  7. box2d 碰撞检测_(译)如何使用box2d来做碰撞检测(且仅用来做碰撞检测)

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...

  8. Egret中使用P2物理引擎

    游戏中的对象按照物理规律移动,体现重力.引力.反作用力.加速度等物体特性,实现自由落体.摇摆运动.抛物线运动,以及物理碰撞现象的模拟.用于模拟物理碰撞.物理运动的引擎称为物理引擎.  来自瑞典斯德哥尔 ...

  9. html5游戏开发box2djs,Box2D.js简易示例

    Box2dWeb example //在页面加载完毕后启动整个Box2D程序 function init() { //简化缩写各个对象名称 var b2Vec2 = Box2D.Common.Math ...

最新文章

  1. iframe标签快速使用
  2. 拉取远程分支_git使用教程之创建本地库并关联远程库(笔记整理篇一)
  3. 使用hexo yeele主题搭建个人博客
  4. Leetcode 138. 复制带随机指针的链表 解题思路及C++实现
  5. C++找出数组中的第一个非重复整数的算法(附完整源码)
  6. PHP的自动加载__autoload spl_autoload_register
  7. mysql error code 145,MYSQL 错误#145解决方法
  8. Flexbox 布局 – 表单
  9. 获取2个地址之间的距离(高德API)
  10. 线程安全和对应的核心概念
  11. Bootstrap 警告框插件Alert 的事件
  12. 你知道undefined与null的区别吗?
  13. python html5游戏_分享八款经典HTML5小游戏源码
  14. 转:《欢聚时代(多玩YY)IPO招股书》(概要)
  15. adb安装apk程序
  16. 西方文学名著鉴赏——英文诗歌翻译赏析
  17. spring基于注解的AOP配置 中的环绕通知 步骤写法
  18. 【计算机网络】-- 第一章--概述(概念、组成、功能、分类、性能指标、体系结构)
  19. 新品开源又融资,长亭科技“脱胎而成”!
  20. html flash闹钟,闹钟自己做 Flash DIY个性化闹钟

热门文章

  1. Redis之Codis
  2. 在5个月内从Carpenter到前端开发人员
  3. 探究break到底是跳出几层循环。
  4. 10句民间俗语,感悟古人智慧
  5. 推荐一款微信 Markdown 编辑器
  6. JavaSwing+mysql的图书管理系统设计实现
  7. python高级绘图师_matplotlib库-python中的绘图师
  8. 区块链技术精华:四十种智能合约支持平台(四)
  9. 扬州计算机会考高中,2018年扬州中考生会考成绩均达C可报普高
  10. 《马伯庸笑翻中国简史》