zoukankan      html  css  js  c++  java
  • box2dWeb 学习笔记

    创建世界

    var myWorld = new b2World(gravity,doSleep);

    gravity为重力 一个b2Vec2(向量) 新建 一个向量类:new b2Vec2(0 ,9.8) 垂直方向用9.8来模拟地球重力

    doSleep 是否休眠静止物体 设置为true 可以减少运算开销

    新建刚体

    b2Body 刚体类

    新建刚体无需直接用new来实例化b2Body类,而是通过另外2个类辅助类来间接的新建刚体 b2BodyDef and b2FixtrueDef   如:

    var myWorld = new b2World(gravity,doSleep)
    
    var bd= new b2BodyDef();
    
    var bfd = new b2FixtrueDef();
    
    var body1 = world.CreateBody(bd);
    
    body1.CreateFixtrue(bfd);

    b2BodyDef 用来保存刚体的状态,以及运动相关的信息 如刚体的类型 角速度 速度 阻尼等

    b2FixtrueDef 刚体自身所固有的一些属性 比如密度 弹性系数 形状

    这里当我们用CreateBody把bd对象添加到新建刚体后 bd就跟body1没有任何关系了 这个时候 我们无需新建bd 直接利用已有的bd,就可以来创建其他的body  (Fixtrue同理)

     下面记录下b2BodyDef b2FixtureDef 相关属性:

    b2BodyDef 中的属性    
    active Boolean  可用与否
    allowSleep  Boolean  允许睡眠与否
    awake Boolean  活动与否
    bullet  Boolean  bullet
    angle  Number  角度
    angularDamping  Number  角速度阻尼
    angularVelocity  Number  角速度
    fixedRotation  Boolean  角度固定
    inertiaScale  Number  角速度惯性系数
    linearDamping  Number  线速度阻尼
    linearVelocity  b2Vec2  线速度
    position  b2Vec2  坐标
    type  uint  类型
    userData  自定义数据
    b2FixtureDef 中的属性    
    density  Number  密度
    friction  Number  摩擦系数
    restitution  Number  弹性系数
    filter  b2FilterData  碰撞过滤
    isSensor  Boolean  是否为传感器
    shape  b2Shape  形状
    userData  自定义数据
         
         

    bodyDef的状态类属性:

    bodyDef.position.Set(100/30,100/30);//刚体的位置设置

    bodyDef.type = b2Body.b2_dynamicBody;//刚体类型  静态刚体:b2Body.b2_staticBody   可动刚体:b2Body.b2_dynamicBody      动态刚体:b2Body.b2_kinematicBody

    bodyDef.active=false;刚体是否处于激活状态:如果为false 在更新的Bodylist 的时候 会直接跳过  可以通过body.SetActive(true)来修改其值  dody也有 IsActive()  来获取active

    bodyDef.awake=false;刚体当前是否在唤醒状态 与active类似 暂时不只他们的区别

     以上三个属性的都可以修改 通过修改他们 可以实现停止或开始 运行相关刚体 

     allowSleep:Boolean :刚体是否可以睡眠,默认为 true。 针对当前的刚体  对应的方法 IsSleepingAllowed():Boolean ;SetSleepingAllowed(flag:Boolean):void。

     bullet:Boolean : 是否模拟高速子弹,开启 CCD 碰撞检测 ,默认为 false。 当运动速度很快的时候 刚体可能会穿透其他非静态刚体 ,开启bullet后 就不会出现出现这种类似bug的问题,但是他对性能的要求也更高  所以不宜开启过多的bullet刚体

     bodyDef的角度 角速度类属性:

        

  • 相关阅读:
    extel操作
    postman 使用post方式提交参数值
    json_encode 转化数组时,中文不转义出现乱码的解决方法
    csnd 不好使,所以我来博客园了
    Nodejs 之Ajax的一个实例(sql单条件查询&并显示在Browser端界面上)
    JS 之JSON
    Nodejs sql模块及模块化思想
    Nodejs之Ajax
    Nodejs 之express框架的应用---简单的登录界面
    Nodejs 入门 12-28
  • 原文地址:https://www.cnblogs.com/chocho/p/4693529.html
Copyright © 2011-2022 走看看