首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些函数在ammo.js中不起作用,尽管BulletPhysics文档显示它们应该

某些函数在ammo.js中不起作用,尽管BulletPhysics文档显示它们应该
EN

Stack Overflow用户
提问于 2015-07-04 16:37:38
回答 1查看 501关注 0票数 0

为了澄清- ammo.js是一个使用emscripten的弹物理端口

好的,所以我刚刚制作了一个快速而肮脏的脚本来移动一个带按键的块,这很好,也很有效。然而,当我想旋转的时候,铬块一直告诉我

TypeError: quat1.setEulerZYX不是函数 在drawScene

尽管子弹文件清楚地声明setEulerZYX是一个函数

代码语言:javascript
复制
try {
    var px = parseFloat(tempCamz); // Turns strings into integers
    var py = parseFloat((tempCamy * -1));
    var pz = parseFloat(tempCamx);
    var quat1 = new Ammo.btQuaternion();
    quat1.setEulerZYX(0.5,0,0);
    var blockShape = new Ammo.btBoxShape(new Ammo.btVector3(1/4, 1, 1/2));
    var mass = 1;
    var blockTransform = new Ammo.btTransform();
    blockTransform.setIdentity();
    blockTransform.setRotation(quat1);
    blockTransform.setOrigin(new Ammo.btVector3(px, py, pz));
    var localInertia = new Ammo.btVector3(0, 0, 0);
    var myMotionState = new Ammo.btDefaultMotionState(blockTransform);
    blockShape.calculateLocalInertia(mass,localInertia);
    var rbInfo = new Ammo.btRigidBodyConstructionInfo(mass, myMotionState, blockShape, localInertia);
    var body = new Ammo.btRigidBody(rbInfo);
    body.setLinearVelocity(origvel);

    instances[i].physObj = body;
    dynamicsWorld.addRigidBody(instances[i].physObj);

    } catch(err) {
    console.log(err);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-04 20:00:34

ammo.js并不公开所有项目实体的完整API:

并不是所有的类都公开了,因为只有在ammo.idl中描述的内容才会被包装。

-来自自述文件

有关可用方法的列表,请参见ammo.idl

您可以更新ammo.idl并为您需要的方法添加定义,然后使用自定义构建或尝试将您的更改转化为upstreem,有关一些说明,请参阅本期

我没有足够的耐心自己构建这个东西(主要是因为Debian存储库中默认的emscripten包存在问题),但是让emscripten正常工作应该很容易将setEulerZYX()的声明包含在btQuaternion定义中,更新后的声明看起来可能是这样的(但我没有尝试,所以它可能工作,也可能不起作用):

代码语言:javascript
复制
interface btQuaternion {
  void btQuaternion(float x, float y, float z, float w);
  void setValue(float x, float y, float z, float w);
  void setEulerZYX(float yaw, float pitch, float roll);
};
btQuaternion implements btQuadWord;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31222918

复制
相关文章

相似问题

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