我正在使用边缘碰撞检测行为来添加与视口边缘的碰撞,并使用身体脉冲响应行为来响应这些碰撞,以便碰撞体从“墙壁”反弹。 / p>
然而,我似乎无法使身体脉冲响应仅适用于给定的身体和边缘(身体脉冲响应显然没有applyTo方法?),所以现在身体甚至与其他固定身体相撞虽然我也不想要它们。
如何解决此问题?
谢谢!
答案 0 :(得分:0)
我找到了一个可能的解决方案:
身体脉冲响应行为适用于给定通道中的所有碰撞。 您可以通过使用applyTo(实体)尝试将该行为限制为特定实体,而不是通过更改报告冲突的通道,并将该通道作为身体脉冲响应行为的输入。
(不完整)示例:
Phyiscs(function(world) {
var viewportBounds = Physics.aabb(0, 0, viewportWidth, viewportHeight);
world.add(Physics.behavior('edge-collision-detection', {
channel: 'collisions-edge:detected',
aabb: viewportBounds,
restitution: 0.7,
cof: 1
}));
world.add(Physics.behavior('body-impulse-response', {
check: 'collisions-edge:detected'
}));
/* You can now add a body-collision-detection behavior with the default
* collisions:detected (or a custom name) channel, and the
* body-impulse-response added above won't respond to these collisions.
*/
});
如果您有不同/更好的解决方案 - 请分享!