-
Creator 版本:2.2.1
-
目标平台: Web / iOS / Android / 模拟器
-
重现方式:必现
-
问题详细描述:
仿照iforce2d写了浮力模拟的demo,但是物体没有办法保持稳定平衡状态。
日志看浮力一直在增大
原因排查应该是系统里的重力与计算的浮力因为精度关系一直不相等导致不平衡,但是如何解决能否提供下思路呢?
- 关键代码:
// 浮力计算
// 液体的密度
var density = self._fluidCollider.density;
let displacedMass = density * area;
let _gravity = cc.director.getPhysicsManager().gravity;
var buoyancyForce = new b2.Vec2(displacedMass * _gravity.x, -displacedMass * _gravity.y);
// 下落物体重力计算
var density = colliderB.density;
let displacedMass = density * areaB;
let _gravity = cc.director.getPhysicsManager().gravity;
var G = new b2.Vec2(displacedMass * _gravity.x, -displacedMass * _gravity.y);
// 调试日志
// 下落物体重力
下落物体的重力G为: b2Vec2 {x: 0, y: 2343.749999999999}
// 计算出的浮力
collider Bs Fn is: b2Vec2 {x: 0, y: 2418.375360681887}
vconsole.min.js:11 collider Bs Fn is: b2Vec2 {x: 0, y: 2319.3623177512973}
