web物理引擎p2.js入门手册

最近在学egret游戏引擎,他们推荐的第三方物理引擎库是p2.js,瑞士的一个杀马特开发的,中文资料很少,于是我就把他github项目的wiki给翻译出来了,这里是项目地址:https://github.com/schteppe/p2.js/wiki
大家觉得错了或者不够好,就来github完善这个中文wiki吧 https://github.com/schteppe/p2.js/wiki/Chinese-wiki-%E4%B8%AD%E6%96%87%E7%BB%B4%E5%9F%BA
六个月前,我参加英语六级考试,388分 再见再见

p2.js内容导航

欢迎使用p2.js手册。这篇手册的目的在于覆盖p2.js API文档中没有提及的知识点,点击进入API文档地址

使用p2框架前,你必须懂得基础的物理学概念,比如质量、力、扭力和推力。否则,你只能先上谷歌和维基百科了。由于p2.js是基于javascript语言编写的,显然你还得有js的编程能力。

如果你有问题反馈的话,请发帖

Core concepts核心概念

Shape(形状),一个几何形状,可以是矩形、圆形等等。

Body(刚体),它是一块无限坚硬的物体。因此,在这块物体上任何两点之间的距离都被认为是固定的。Body(刚体)有自己的参数用来规定位置、质量和速度等,刚体的形状是由Shape创建的形状确定的。

Constraint(约束),constraint 是一个物理连接件,用来控制刚体的自由度。在3d世界,物体有6个自由度(3个平移坐标和3个旋转坐标)。在2d世界,物体只有3个自由度(2个平移坐标和1个旋转坐标)。众所周知,人类世界是3d的,因此我们家里的门本来应该是有6个自由度的,但是由于门的一侧被门铰链固定在墙上,它失去了另外5个自由度,只能照着门铰链这个轴旋转了。门铰链就相当于一个constraint(约束)。

Contact constraint(接触约束),这是一个特别的约束,作用在于防止刚体之间的渗透重叠,并且它可以模拟摩擦和弹性。你无须创建这个约束,系统会自动创建它的。

World(世界),这就是一个模拟的物理世界,所有的刚体和约束创建后都要放进来。

Solver(求解器),物理世界的solver(求解器)专门用于处理约束情况。

Units(单位),就是用来测量长度、时间等等数量的单位。在p2.js中,我们用 meters-kilogram-second (MKS) 为单位,用弧度作为角度单位。不要用像素做单位哦。

Hello p2.js!

接下来我们开始建一个简单的物理世界,只用一个动态的圆形和一个静态的平面就好了。搞起来:

var world = new p2.World({
   gravity:[0,-9.82]
 });

这就是一个简单的世界实例了,并且我们把这个世界的重力设置为了9.82,也就是在y轴的负半轴方向。

现在,我们就来创建一个圆形刚体吧。

var circleBody = new p2.Body({
     mass:5,
     position:[0,10]
 });

这样,我们就在 x=0, y=10 的位置上创建了一个5kg的刚体了,不过它暂时还没有形状,因此我们得给它添加一个形状。

var circleShape = new p2.Circle
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值