package{
import Box2D.Collision.b2AABB;
import Box2D.Collision.b2RayCastInput;
import Box2D.Collision.b2RayCastOutput;
import Box2D.Collision.Shapes.b2CircleShape;
import Box2D.Collision.Shapes.b2PolygonShape;
import Box2D.Collision.Shapes.b2Shape;
import Box2D.Common.Math.b2Vec2;
import Box2D.Dynamics.b2Body;
import Box2D.Dynamics.b2BodyDef;
import Box2D.Dynamics.b2Fixture;
import Box2D.Dynamics.b2FixtureDef;
import Box2D.Dynamics.b2World;
import flash.display.Sprite;
import flash.utils.getTimer;
import Box2D.Dynamics.Joints.b2PulleyJoint;
import Box2D.Dynamics.Joints.b2PulleyJointDef;
import Box2D.Dynamics.Joints.b2RopeJointDef;
import Box2D.Dynamics.Joints.b2RopeJoint; //出现脱节时,调velocityIterations, positionIterations
//_world.Step(1/30,128,128);
public class Main extends BaseMain{ public function Main(){
super(new b2Vec2(0,10));
} private const ropeW:Number=20;
private const ropeH:Number=20; override protected function init():void{
var bodies:Vector.<b2Body>=new Vector.<b2Body>();
var i:int;
for(i=0;i<10;i++){
var body:b2Body=createBox(ropeW,ropeH,400+i*ropeW,100);
bodies[i]=body;
if(i>0){
var bodyA:b2Body=bodies[i-1];
var bodyB:b2Body=bodies[i];
var halfW:Number=ropeW*0.5/_ptm_ratio;
var anchorA:b2Vec2=new b2Vec2(bodyA.GetPosition().x+halfW,bodyA.GetPosition().y);
var anchorB:b2Vec2=new b2Vec2(bodyB.GetPosition().x-halfW,bodyB.GetPosition().y);
var maxLength:Number=0.1;
createRopeJoint(bodyA,bodyB,anchorA,anchorB,maxLength);
}
}
bodies[0].SetType(b2Body.b2_staticBody); var bigBox:b2Body=createBox(400,400,400+i*ropeW,100);
bigBox.SetSensor(true);
createRopeJoint(bodies[bodies.length-1],bigBox,
new b2Vec2(bodies[bodies.length-1].GetPosition().x+halfW,bodies[bodies.length-1].GetPosition().y),//anchorA
new b2Vec2(bigBox.GetPosition().x-200/_ptm_ratio,bigBox.GetPosition().y),//anchorB
0.1);//maxLength
} private function createRopeJoint(bodyA:b2Body,bodyB:b2Body,anchorA:b2Vec2,anchorB:b2Vec2,maxLength:Number):void{
var jointDef:b2RopeJointDef=new b2RopeJointDef();
jointDef.Initialize(bodyA,bodyB,anchorA,anchorB,maxLength);
jointDef.length=5;
b2RopeJoint(_world.CreateJoint(jointDef));
} override protected function stepBefore():void{ } };
}

源码下载:http://pan.baidu.com/s/1jIjpjIu

绳关节(b2RopeJoint)的更多相关文章

  1. Box2D淌坑日记: 关节(Joint)和旋转关节(b2RevoluteJoint)

    关节在Box2D的对象组织结构中,与b2Body(刚体)并列.因此两种对象都是由b2World创建并直接管理. 然而Joint有依赖于b2Body的地方,就是它的销毁:当关节所涉及到的刚体被销毁,关节 ...

  2. Unity 物理引擎动力学关节

    Unity物理引擎中的各个动力学关节 Hinge Joint (铰链关节) Fixed Joint (固定关节) Spring Joint (弹簧关节) Character Joint(角色关节) C ...

  3. box2dweb之关节joint(连接器)

    1 概述 前篇基础文章看完后基本上就应该对box2dweb能上手了,下面来介绍一下box2dweb非常重要的一个概念,关节(joint)也有叫连接器的,总之是一个意思.下面是关节详细的类库说明: BO ...

  4. 实例介绍Cocos2d-x中Box2D物理引擎:使用关节

    下面我们将使用Box2D物理引擎技术进行重构.使得关节能够掌握如何在Box2D使用关节约束.HelloWorldScene.cpp中与使用关节的相关代码如下: void HelloWorld::add ...

  5. 实例介绍Cocos2d-x物理引擎:使用关节

    在游戏中我们可以通过关节约束两个物体的运动.我们通过一个距离关节实例,介绍一下如何在使用关节. 这个实例的运行后的场景如图所示,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触摸点和附近生成 ...

  6. 关于FPGA异步时钟采样--结绳法的点点滴滴

    一.典型方法 典型方法即双锁存器法,第一个锁存器可能出现亚稳态,但是第二个锁存器出现亚稳态的几率已经降到非常小,双锁存器虽然不能完全根除亚稳态的出现(事实上所有电路都无法根除,只能尽可能降低亚稳态的出 ...

  7. Unity中的关节

    关节组件一共分为5大类,它们分别是链条关节.固定关节.弹簧关节.角色关节和可配置关节.链条关节(Hinge Joint):将两个物体以链条的形式绑在一起,当力量过大超过链条的固定力矩时,两个物体就会产 ...

  8. libgdx, mouse 关节

    鼠标与body的交互就靠这个mouse 关节了. 在使用中:主要分成3步: 步1:mouseDown : 这个时期,调用world->QueryAABB.它有一个回调接口,并依据鼠标指针指定一个 ...

  9. 【Unity 3D】学习笔记四十一:关节

    关节 关节组件能够加入至多个游戏对象中,而加入关节的游戏对象将通过关节连接在一起而且感觉连带的物理效果.须要注意的是:关节必须依赖于刚体组件. 关节介绍 关节一共分为5大类:链条关节,固定关节,弹簧关 ...

随机推荐

  1. Android RecyclerView完全解析

    RecyclerView完全解析 (一) 前言 话说RecyclerView已经面市很久,也在很多应用中得到广泛的使用,在整个开发者圈子里面也拥有很不错的口碑,那说明RecyclerView拥有比Li ...

  2. In-Memory:内存优化数据的持久化和还原

    数据持久化是还原的前提,没有数据的持久化,就无法还原内存优化表的数据,SQL Server In-Memory OLTP的内存数据能够持久化存储,这意味着内存数据能够在SQL Server实例重启之后 ...

  3. 结构-行为-样式-Css Div 居中的一个最佳实践

    最近在做项目的时候,经常会有需要各种居中的情况,现在分享一个最佳实践. <div class="success-bottom"> <div class=" ...

  4. 获取Storyboard中的视图控制器

    storyboard对于框架的构建是一个非常方便的工具,我们经常需要在storyboard中获取我们指定的视图控制器,那么要怎么获取呢? 方法如下: 第一步:选中视图,为视图自定义一个Storyboa ...

  5. 中兴电信光纤猫F450获取管理员密码方法

    初衷:为了完成端口映射,一开始以为电信光猫不支持自定义路由,因为通过useradmin登录进去后没有找到对应的选项.一番了解之后,原来光猫有超级密码,电信装机时是不会告诉你的,电信客服一般也不会告诉你 ...

  6. iOS中的布局

    1.UIView 有三个比较重要的布局属性: frame , bounds 和 center , CALayer 对应地叫做 frame , bounds 和 position .为了能清楚区分,图层 ...

  7. 遍历json创建树状表(首先的前提条件是要引入jquery的jquery treeTable插件)

    "root":{ "children":[ { "name":"AA", "children":[ ...

  8. CodeForces 711C Coloring Trees

    简单$dp$. $dp[i][j][k]$表示:前$i$个位置染完色,第$i$个位置染的是$j$这种颜色,前$i$个位置分成了$k$组的最小花费.总复杂度$O({n^4})$. #pragma com ...

  9. mouseover和this的巧用

    mouseover & mouseout 的问题 在JS中,使用mouseover & mouseout会有触发多次的问题,这里Jquery有了替代的新属性 mouseover == ...

  10. canvas烟花-娱乐

    网上看到一个释放烟花的canvas案例,很好看哦. 新建文本,把下面代码复制进去,后缀名改为html,用浏览器打开即可. 看懂注释后,可以自己修改烟花的各个效果.我试过让烟花炸成了心型.:-) < ...