首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载physi.js和ammo.js时出错

加载physi.js和ammo.js时出错
EN

Stack Overflow用户
提问于 2017-03-18 11:27:18
回答 1查看 719关注 0票数 0

我正试着开发一个有生理功能的项目。我遇到了这种类型的错误(来自mozilla控制台):

  • NetworkError:未能在"js/libs/ammo.js“加载辅助脚本

我在试着修复它,但没有结果。这是我在物理is设置上的代码片段:

代码语言:javascript
复制
<script src="build/three.js"></script>
<script src="js/libs/physi.js"></script>
<script src="js/controls/OrbitControls.js"></script>
<script src="js/Detector.js"></script>

<script>

    'use strict';

    Physijs.scripts.worker = 'js/libs/physijs_worker.js';
    Physijs.scripts.ammo = 'js/libs/ammo.js';

所有javascript文件都在js目录中,除了Three.js构建文件(在构建目录中)。我不知道我的代码出了什么问题,我只创建了灯、地面(按照Physijs规则,复合形状)和一个包(我想应用锥扭曲约束,但由于以前的原因不能工作)。

我甚至添加了用于初始化场景的代码(如果有问题的话):

代码语言:javascript
复制
function createScene() {

            var container = document.getElementById( 'container' );

            //stats = new Stats();
            //container.appendChild( stats.dom );

            camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 0.1, 1000 );
            camera.position.x = 0;
            camera.position.z = 17;
            camera.position.y = 12;

            //scene = new THREE.Scene();
            scene = new Physijs.Scene;
            scene.setGravity(new THREE.Vector3( 0, -10, 0 ));


            renderer = new THREE.WebGLRenderer();
            renderer.physicallyCorrectLights = true;
            //renderer.gammaInput = true;
            //renderer.gammaOutput = true;
            renderer.shadowMap.enabled = true;
            //renderer.shadowMapType = THREE.PCFSoftShadowMap;
            //renderer.toneMapping = THREE.ReinhardToneMapping;
            renderer.setPixelRatio( window.devicePixelRatio );
            renderer.setSize( window.innerWidth, window.innerHeight );
            container.appendChild( renderer.domElement );


            var controls = new THREE.OrbitControls( camera, renderer.domElement );
            controls.target.set( 0, 0, 0 );
            controls.noPan = true;  //disable panning of orbit control
            controls.noKeys = true; //disable arrow keys of orbit control
            controls.update();

            window.addEventListener( 'resize', onWindowResize, false );
            window.addEventListener( 'keydown', onKeyDown, false );
            window.addEventListener( 'keyup', onKeyUp, false );

        }

如何解决此问题并正确导入Physi.js?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-18 18:24:25

解决了,我使用了一个本地web服务器(Three.js参考资料)并改变了这一点:

代码语言:javascript
复制
Physijs.scripts.worker = 'js/libs/physijs_worker.js';
Physijs.scripts.ammo = 'ammo.js';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42873767

复制
相关文章

相似问题

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