zoukankan      html  css  js  c++  java
  • Box2D的相关知识

      cocos2d-x引擎支持两个物理引擎,分别为Box2D和Chipmunk。通常使用为Box2D。以下为Box2D中的概念。世界(World),刚体(body)、刚体定义(BodyDef)、关联(Fixture)、关联定义(FixtureDef)、形状(Shape)、连接(Joint)、以及链接定义(JointDef)。

    世界:
    创建世界需要两个步骤:1、生成重力向量。2、根据重力向量生成对象。例如:
    //生成一个重力向量
    b2Vec2 gravity;
    gravity.Set(0.0f,-10.0f);
    //根据重力向量生成世界对象
    b2World *world = new b2World(gravity,true);

    刚体及刚体定义:
    刚体代表一个质点,因此它只有位置,没有大小。刚体分为三类:
    1、静态刚体(Static Body)。没有质量、没有速度。绝对静止。
    2、棱柱刚体(Prismatic Body)。没有质量,但可以有速度。引擎会根据速度计算并更新它的位置。
    3、动态刚体(Dynamic Body)。可以有质量、可以有速度。最常用的刚体。
    与世界类似刚体定义也分为两步:1、创建刚体定义。2、根据缸体定义生成刚体。eg:
    //生成刚体定义
    b2BodyDef groundBodyDef;
    groundBodyDef.position.Set(0,0);
    //根据刚体定义生成刚体
    b2Body *groundBody = world->CreateBody(&groundBodyDef);

    形状:
    形状通过关联附加到刚体上,刚体就具有了视觉上的外形。刚体可以有多个关联,因此也就可以有多个形状,Box2D称为组合形状(compound Shapes),这样可以构成更复杂的形状。eg:
    b2PolygonShape dynamicBox;
    dynamicBox.SetAsBox(0.5f,0.5f);

    关联及关联定义:
    创建关联:1、创建关联定义。2、通过世界相关方法创建关联。eg:
    b2FixtureDef fixtureDef;
    fixtureDef.shape = &dynamicBox;
    fixtureDef.dynsity = 1.0f;
    fixtureDef.friction = 3.0f;
    //根据关联定义生成关联
    b2Fixture *fixture = body->CreateFixtrue(&fixtureDef);

    链接及链接定义:
    链接用来联系多个刚体,使他们产生相互影响。链接有很多类型,必须选择你需要的相应类型。同样两个步骤:1、定义。2、根据定义创建。eg:
    b2LineJointDef jointDef;
    b2Vec2 axis(2.0f,1.0f);
    axis.Normalize();
    jointDef.Initialize(ground,body,b2Vec2(0.0f,8.5f),axis);
    jointDef.motorSpeed = 0.0f;
    jointDef.maxMotorForce = 100.0f;
    jointDef.enableMotor = true;
    jointDef.lowerTransltaion = -4.0f;
    jointDef.upperTranslation = 4.0f;
    jointDef.enableLimit = true;
    //根据链接定义生成链接
    b2Joint *joint = m_world->CreateJoint(&jointDef);


    本篇博客出自 阿修罗道 ,转载请注明出处: http://blog.csdn.net/fansongy/article/details/8846403


  • 相关阅读:
    telnet连接ip
    完成端口————留着看
    mysql设置最大连接数量
    前端页面唯一字符串生成(Js)UUID
    java加密MD5实现及密码验证
    cookie中存取中文字符
    自定义标签——带标签体
    简单讨论数据类型(byte)强制转化后的数值变化规律
    般若波罗蜜多心经(转载)
    table 表头固定
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3041096.html
Copyright © 2011-2022 走看看