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.Controllers.b2BuoyancyController; /**
*
*/
public class Main extends BaseMain{ private var _bodies:Vector.<b2Body>=new Vector.<b2Body>(); public function Main(){
super(new b2Vec2(0,10));
} override protected function init():void{
createBodies();
createBuoyancyController();
} private function createBodies():void{
for(var i:int=0;i<50;i++){
var x:Number=stage.stageWidth*0.5;
var y:Number=50;
var body:b2Body=Math.random()>0.5?createBox(20,20,x,y):createCircle(10,x,y);
_bodies.push(body);
}
} private function createBuoyancyController():void{
var controller:b2BuoyancyController=new b2BuoyancyController();
controller.angularDrag=0.5;
controller.density=1.5;//设置水的密度,要大于水中刚体的密度才能上浮
//controller.gravity=null;
controller.linearDrag=0.5;
controller.normal.Set(0,-1);//设置水面的法向量
controller.offset=-200/_pixelToMeter;//水面的高度,默认在最顶部(y轴0的位置),-100表示向下移动100
//controller.useDensity=false;
//controller.useWorldGravity=true;
//controller.velocity.Set(0,0);
_world.AddController(controller);
for(var i:int=0;i<_bodies.length;i++){
controller.AddBody(_bodies[i]);
} } override protected function stepBefore():void{ } };
}

b2BuoyancyController 使用浮力的更多相关文章

  1. 【Unity笔记】使物体(船)漂浮在水面上——浮力

    在官方论坛看到一个关于怎么使物体漂浮在水面上的讨论:https://forum.unity3d.com/threads/floating-a-object-on-water.31671/ 水动力系统 ...

  2. 远离腰痛的好方法——如何锻炼腰背部肌肉?

    在我们的骨科门诊中最常见到的就是腰痛患者:引起腰痛的原因很多,也比较复杂,所以就有俗语"病人腰痛.医生头痛"一说.其实,相当大部分的腰痛症状都是跟腰背部后方的肌肉筋膜劳损或者无菌性 ...

  3. 【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术。

    [SIGGRAPH 2015][巫师3 狂猎 The Witcher 3: Wild Hunt ]顶级的开放世界游戏的实现技术 作者:西川善司 日文链接  http://www.4gamer.net/ ...

  4. Nape的回调系统 nape.callbacks

    在Nape中增加一个回调大致分为三步 1:定义一些标签,并根据需求为不同的Interactor打上不同的标签 2:定义一个监听器,这个监听器定义了哪些标签触发了哪种行为之后做何种回调 3:为Space ...

  5. nape.dynamics.InteractionFilter

    (转载http://tomyail.com/blog/1123) Nape定义了三种交互方式: Collision(碰撞) Sensor(感应) Fluid(浮力) 默认情况下两个物体只会发生Coll ...

  6. 【动态规划】天堂(Heaven) 解题报告

    天堂(heaven) 题目描述 每一个要上天堂的人都要经历一番考验,当然包括小X,小X开始了他进入天堂的奇异之旅.地狱有18层,天堂竟然和地狱一样,也有很多很多层,天堂共有N层.从下到上依次是第1,2 ...

  7. 网络协议 21 - RPC 协议(中)- 基于 JSON 的 RESTful 接口协议

        上一节我们了解了基于 XML 的 SOAP 协议,SOAP 的 S 是啥意思来着?是 Simple,但是好像一点儿都不简单啊! 传输协议问题     对于 SOAP 来讲,比如我创建一个订单, ...

  8. 细说javascripe事件传播流程

    当我们使用js时,经常会遇到事件传播流程的问题,下面我说一下我的观点. 在js触发某个事件时会相应生成一个事件对象,而这个事件对象则会根据DOM事件流的方向进传递,而传递的顺序如下图所示: 事件对象会 ...

  9. 20165231 预备作业二:学习基础和C语言基础调查

    微信文章感想 读了娄老师微信公众号中的文章,老师给我们的启示首先就是要坚持,万事开头难,但是只要肯坚持就一定会有所成就,不管是学习还是生活方面.其中最有触动的就是减肥了,是我三四年来一直难以完成的目标 ...

随机推荐

  1. [UE4]Set Skeletal Mesh,在蓝图中设置骨骼模型

  2. Linux下安装python3及相关包

    Python3: sudo apt-get install python3 终端中输入python则进入python2,输入python3则进入python3 安装python2的相关包: sudo ...

  3. Angular2 入门详解

    AngularJS 2 快速入门 npm是什么?   npm其实是Node.js Package Manager的简称,是Node.js包管理工具(package manager) 安装Node.js ...

  4. hadoop 分布式机群搭建

    描述:鉴于本地电脑内存限制,采用三台虚机安装此环境. 主机名,分别为master.slave1.slave2. zookeeper分别安装这三台机器上,master和slave1做主从备份, slav ...

  5. Hadoop Api 基本操作

     hadoop环境配置好后,直接可以在window上进行调试.话不多说,直接上源码. package cn.terry; import java.io.FileInputStream; import ...

  6. 数据库类型总结对比(Java,Hibernate,SQLServer,MySQL,Oracle)

  7. PHP unset()函数销毁变量

    <?php // 销毁单个变量 unset ($var); // 销毁单个数组元素 unset ($arr['a']); // 销毁多个变量 unset ($var1, $var2, $var3 ...

  8. python连接RabbitMQ

    安装PIP wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz tar -xzvf pip-.tar.g ...

  9. svn下copy项目后定位到新资源库,产生不同版本号的方法

    转载于http://blog.csdn.net/u012990533/article/details/44776465 最近这两天,公司要做国际化的开发,本打算要用struts2内置的i18n拦截器做 ...

  10. WPF 异步刷新页面,创建定时器

    #region 异步,刷新页面 /// <summary> /// 页面加载事件 /// </summary> /// <param name="sender& ...