如何让球在 CANNON.js 和 THREE.js 的盒子内弹跳?
how can I make a ball bounce inside a Box with CANNON.js and THREE.js?
我在 THREE.js
中有 sphere
和 BoxGeometry
。
我已经设置了标准重力,但是我的球体(在盒子的中心)一直从盒子里掉下来
这是我的 CANNON.js
参数
盒子
const size = 100
const halfExtents = new CANNON.Vec3(size, size, size)
const boxShape = new CANNON.Box(halfExtents)
const boxBody = new CANNON.Body({ mass: 0, shape: boxShape })
multiBall1.userData.world.addBody(boxBody)
球体
const radius = 20;
this.userData.sphereBody = new CANNON.Body({
mass: 5,
shape: new CANNON.Sphere(radius),
});
this.userData.sphereBody.position.set(0, 0, 0);
multiBall1.userData.world.addBody(this.userData.sphereBody);
this.position.copy(this.userData.sphereBody.position);
this.quaternion.copy(this.userData.sphereBody.quaternion);
我想让球在禁区内弹跳。这可能吗?
CANNON.Box 是一个 solid 盒子,所以不能在里面放置其他物体。
您可以构造一个 空心 盒子,例如使用六架飞机。检查此演示的代码:https://schteppe.github.io/cannon.js/demos/container.html
构建空心盒子的另一种方法是使用六个薄盒子形状。
我在 THREE.js
中有 sphere
和 BoxGeometry
。
我已经设置了标准重力,但是我的球体(在盒子的中心)一直从盒子里掉下来
这是我的 CANNON.js
参数
盒子
const size = 100
const halfExtents = new CANNON.Vec3(size, size, size)
const boxShape = new CANNON.Box(halfExtents)
const boxBody = new CANNON.Body({ mass: 0, shape: boxShape })
multiBall1.userData.world.addBody(boxBody)
球体
const radius = 20;
this.userData.sphereBody = new CANNON.Body({
mass: 5,
shape: new CANNON.Sphere(radius),
});
this.userData.sphereBody.position.set(0, 0, 0);
multiBall1.userData.world.addBody(this.userData.sphereBody);
this.position.copy(this.userData.sphereBody.position);
this.quaternion.copy(this.userData.sphereBody.quaternion);
我想让球在禁区内弹跳。这可能吗?
CANNON.Box 是一个 solid 盒子,所以不能在里面放置其他物体。
您可以构造一个 空心 盒子,例如使用六架飞机。检查此演示的代码:https://schteppe.github.io/cannon.js/demos/container.html
构建空心盒子的另一种方法是使用六个薄盒子形状。