Javascript 著名的发动机强力碰撞

Javascript 著名的发动机强力碰撞,javascript,game-physics,famous-engine,Javascript,Game Physics,Famous Engine,我有一个著名的引擎设置和与物理/阻力等工作 但似乎还有其他的物理选择,蛮力、扫掠和修剪等。 我怀疑这些可能是我需要改进元素之间碰撞检测的东西 我已尝试添加暴力冲突检测,如下所示: this.collision=新的碰撞([rightWall,leftWall,topWall,bottomWall]) 但是我得到了一个关于不正确约束的错误。 this.simulation.addConstraint(this.collision) 有没有人有解决这个问题的经验 您可以在此处看到演示: var名人

我有一个著名的引擎设置和与物理/阻力等工作

但似乎还有其他的物理选择,蛮力、扫掠和修剪等。 我怀疑这些可能是我需要改进元素之间碰撞检测的东西

我已尝试添加暴力冲突检测,如下所示:
this.collision=新的碰撞([rightWall,leftWall,topWall,bottomWall])

但是我得到了一个关于不正确约束的错误。
this.simulation.addConstraint(this.collision)

有没有人有解决这个问题的经验

您可以在此处看到演示:

var名人=名人;
var FamousEngine=著名的.core.FamousEngine;
var-Camera=著名的.components.Camera;
var DOMElement=著名的.domRenderables.DOMElement;
var Gravity3D=著名的.physics.Gravity3D;
var MountPoint=著名的.components.MountPoint;
var PhysicsEngine=著名的.physics.PhysicsEngine;
var位置=著名的.components.Position;
变量大小=著名的.components.Size;
var Wall=著名的.physics.Wall;
var Sphere=著名的.physics.Sphere;
var Vec3=著名的.math.Vec3;
var math=著名的数学;
var物理=著名物理;
var碰撞=著名的物理碰撞;
var-signatures=name.components.GestureHandler;
var Spring=著名的.physics.Spring;
console.log(著名)
var anchor=newvec3(window.innerWidth/2,window.innerHeight/2,0);
//筑墙
var rightWall=新墙({
方向:墙。左
}).设置位置(窗内宽度-20,0,0);
var leftWall=新墙({
方向:沃尔。对
}).设置位置(窗内宽度+20,0,0);
var topWall=新墙({
方向:墙下
}).设置位置(0,20,0);
var bottomWall=新墙({
方向:Wall.UP
}).设置位置(0,窗内高度-20,0);
var中心点;
函数Demo(){
this.scene=FamousEngine.createScene('body');
this.collision=新的碰撞([rightWall,leftWall,topWall,bottomWall]);
console.log(this.collision)
this.simulation=新物理引擎();
这个.simulation.setOrigin(0.5,0.5);
this.simulation.addConstraint(this.collision);
此参数为.items=[];
this.walls=[];
//创建项目
对于(变量i=0;i<10;i++){
var node=this.scene.addChild();
节点安装点(0.5,0.5);
变量大小=新大小(节点).setMode(1,1);
var位置=新位置(节点);
如果(i==0){
调用(此、节点、大小、位置);
}
如果(i!==0&&i!==9){
node.id=i;
createSatellites.call(这个、节点、大小、位置);
}
如果(i==9){
node.id=i;
createAlternateShape.call(这个、节点、大小、位置);
}
}
//筑墙
var node=this.scene.addChild();
创建墙(节点);
var一次=真;
Demo.prototype.onUpdate=函数(时间){
这个。模拟。更新(时间);
此.collision.resolve(时间,360)
//定位墙
var wallPosition=topWall.getPosition();
节点设置位置(wallPosition.x,wallPosition.y);
//位置元素
如果(this.items.length>0){
对于(var i=0;i