zoukankan      html  css  js  c++  java
  • Distance Joint(固定距离胶链)

    在前面的例子中有过拖动物体,其实那是利用了box2d中的Mouse Joint(鼠标胶链)来实现的,具体参看《自定义刚体与拖动》一篇。现在说说距离胶链。

    创建距离胶链,需先实例一个距离胶链定义,即b2DistanceJointDef的实例。

    b2DistanceJointDef有如下实例属性和方法:

    body1:胶链一端的刚体。

    body2:胶链另一端得刚体。

    collideConnected:一个布尔值,设为true,则胶链两端的刚体碰撞被检测,设为false,则不检测。

    Initialize(方法):此方法有四个参数,分别为:body1-表示第一个刚体;body2-表示第二个刚体;anchor1-表示第一个刚体的初始位置;anchor2-表示第二个刚体的初始位置。

    下面是创建距离胶链的部分代码:

    var body1:b2Body = _rectActors[i - 1].body;
    var body2:b2Body = _rectActors[i].body;
    var vec1:b2Vec2 = body1.GetPosition();
    var vec2:b2Vec2 = body2.GetPosition();
    var distanceJointDef:b2DistanceJointDef = new b2DistanceJointDef();
    distanceJointDef.Initialize(body1, body2, vec1, vec2);
    distanceJointDef.collideConnected = true;
    var distanceJoint:b2DistanceJoint = _world.CreateJoint(distanceJointDef) as b2DistanceJoint;

    box2d胶链上本身并没有白线连接的,白线是我自己画上去的,用一个循环就可以完成。如果你用box2d的world设置debug模式,并设置b2DebugDraw实例的m_drawFlags属性为b2DebugDraw.e_jointBit,box2d则会自己绘制出线条。

  • 相关阅读:
    [Docker][ansible-playbook]3 持续集成环境之分布式部署
    [Jenkins][GitHub]2 持续集成环境初探
    [Jenkins][centos]1 持续集成 之 配置VNC,部署Jenkins
    [AWS][GUI][VNC]rhel 7 安装GUI ,配置VNC
    [Git]checkout 指定版本
    [Golang][Mac]Go 语言学习资料记录
    App测试札记
    摘记:代码检查错误列表
    摘记:Web应用系统测试内容
    摘记:LoadRunner
  • 原文地址:https://www.cnblogs.com/ywxgod/p/1712251.html
Copyright © 2011-2022 走看看