我可能错过了一些明显的东西,但我如何对像活塞这样的东西进行约束呢?
FWIW真的很喜欢玩这个代码。
由于
萨姆
答案 0 :(得分:0)
据我所知,包含的CANNON.Constraint
类仅用于约束两个对象相对移动。这在这里似乎没有用,因为你想限制一个主体到特定轴的移动。
它并不优雅,但你可以在每一步都覆盖身体的位置。例如:
var body;
var axes = [
{axis: 'x', max: 1, min: 0},
{axis: 'y', max: 0, min: 0},
{axis: 'z', max: 0, min: 0},
];
axes.forEach(function (a) {
if (body.position[a.axis] > a.max) {
body.position[a.axis] = a.max;
body.velocity[a.axis] = 0;
} else if (body.position[a.axis] < a.min) {
body.position[a.axis] = a.min;
body.velocity[a.axis] = 0;
}
});
如果你的轴不是x / y / z中的一个,那么同样的方法仍然有效,但会有更多的数学运算。 :)
答案 1 :(得分:0)
Cannon.js尚未实现棱柱约束。如果您想为实现做出贡献,请阅读Cannon.js' github page的更多信息。