首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PhysicsJS摩擦行为

PhysicsJS摩擦行为
EN

Stack Overflow用户
提问于 2014-05-15 07:22:37
回答 2查看 632关注 0票数 3

我是physicsjs的新手,为了熟悉这个库,我正在创建一些测试模拟。

我想模拟在屏幕上滑动的多个盒子,它们都经历了不同程度的摩擦。到目前为止,我有3个框,从屏幕的左边开始,都有一个pos xvel。我不确定将摩擦力添加到模拟中的最佳方法是什么。所有3个盒子都不应该受到摩擦的相同影响。因此,我需要一些方法来应用一个通用的摩擦力算法到所有的盒子,但是摩擦力的大小需要取决于它当前作用于哪个盒子。

EN

回答 2

Stack Overflow用户

发布于 2014-05-16 00:19:07

摩擦是内置的(但它不是最好的算法)。

只需使用:

代码语言:javascript
复制
Physics.body('rectangle', {
     width: 40,
     height: 40,
     cof: 0.5, // <-- change the friction. range [0, 1]
     x: ...
     ...
});
票数 3
EN

Stack Overflow用户

发布于 2016-02-25 23:39:10

空空间摩擦可以通过这种方式来实现。不管球在做什么,它都在减速。

它监听tick事件,然后在每次更新时通过摩擦力的大小来降低速度。

代码语言:javascript
复制
```javascript

function applyFriction(obj,friction) {

代码语言:javascript
复制
// invert it so that 0.1 friction is a multiplication of 0.9 to x.
代码语言:javascript
复制
// it makes more sense to apply 0.1 as friction that way.
代码语言:javascript
复制
var value = 1 - friction;
代码语言:javascript
复制
obj.state.vel.set(obj.state.vel.x * value, obj.state.vel.y * value);

}

//订阅滚动条

Physics.util.ticker.on(函数(时间){

代码语言:javascript
复制
applyFriction(ball, 0.1);// apply friction to the ball.
代码语言:javascript
复制
world.step(time);

});

//启动报价器

Physics.util.ticker.start();

代码语言:javascript
复制
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23666783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档