首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Physijs碰撞事件

Physijs碰撞事件
EN

Stack Overflow用户
提问于 2016-01-14 08:37:23
回答 1查看 833关注 0票数 0

我有两个盒子。一只在地上产卵,另一只掉在地上。地心引力打开了。我正在试着让碰撞事件侦听器向躺在地上的底部盒开火。但是,没有任何记录。

代码语言:javascript
复制
var c = new Physijs.BoxMesh( new THREE.CubeGeometry( 5, 5, 5 ), new THREE.MeshBasicMaterial({ color: 0x888888 }) );
c.__dirtyPosition = true;
c.position.set(10, 0,-5);

c.addEventListener('collision', function(object){
    console.log("hello world"); // NOT FIRING
});

scene.add(c);

var p = c.clone();
p.__dirtyPosition = true;
p.position.y = 50;
scene.add(p);

我不知道我做错了什么--是不是因为__dirtyPosition

编辑:我在没有clone()的情况下测试了它,并重新创建了第二个盒子,但这并没有什么区别。

编辑2:值得一提的是,模拟运行良好,我只是无法让听者工作。

EN

回答 1

Stack Overflow用户

发布于 2016-01-24 13:10:45

https://github.com/chandlerprall/Physijs/issues/178

看起来clone方法是部分THREEjs,而不是Physijs。因此,您的代码只是复制物理材料,而不是物理网格。您只需使用与BoxMesh相同的代码创建另一个c

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34784908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档