From ffd39ddf6fc9b0280af4f2f5810212cf23072c6c Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期六, 25 十二月 2021 11:05:31 +0800
Subject: [PATCH] #
---
static/js/app.js | 206 +++++++++++++++++++++++++++------------------------
1 files changed, 108 insertions(+), 98 deletions(-)
diff --git a/static/js/app.js b/static/js/app.js
index dcf21ef..4c26fdd 100644
--- a/static/js/app.js
+++ b/static/js/app.js
@@ -5,6 +5,7 @@
import {OBJLoader} from './lib/OBJLoader.js';
import {StoreShelf} from './object/StoreShelf.js';
import {StoreCrn} from './object/StoreCrn.js';
+import {StoreConvey} from './object/StoreConvey.js';
import { Sky } from './object/Sky.js';
@@ -29,6 +30,7 @@
this.direction = new THREE.Vector3();
this.raycaster = null;
this.prevTime = performance.now();//涓婁竴娆ender鐨勬椂闂�
+ this.backgroundType = false;
this.start = function () {
this.initMain();
@@ -45,14 +47,15 @@
this.initReSize(this);
this.initPointLockControl(this);
this.initFloor();
- this.initModel();
- this.initStoreObjects(this);
+ this.initBuilding();
+ this.initConvey();
}
this.animate = function () {
requestAnimationFrame(this.animate.bind(this));
this.stats.begin();
this.renderer.render(this.scene, this.camera);
this.firstPersonMove();
+ this.initStoreObjects(this);
this.stats.end();
this.queryCrn();
this.crnMove();
@@ -61,24 +64,29 @@
this.scene = new THREE.Scene();
}
this.initCamera = function () {
- //澹版槑涓�涓�忚鐩告満锛�
- // 瑙嗚锛�60锛�
- // 绾垫í姣攁spect:鍏ㄥ睆锛屼娇鐢ㄧ殑鏄祻瑙堝櫒鐨勫搴�/楂樺害
- //杩戝钩闈ear锛�0.1
- //杩滃钩闈㈣瑙抐ar:10000
- this.camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 50000);
- /*
- 璁剧疆鐩告満浣嶇疆锛屾敞鎰弔hreejs涓殑鍧愭爣绯婚噰鐢ㄧ殑鏄彸鎵嬪潗鏍囩郴
- */
- // this.camera.position.x = 0;
- // this.camera.position.y = 1000;
- // this.camera.position.z = 600;
- // //鐩告満鐨勬湞鍚�
- // this.camera.lookAt(0, 0, 0);
- this.camera.position.set( - 350, 1070, 1550 );
- this.camera.lookAt( this.scene.position );
- //灏嗙浉鏈烘斁鍒板満鏅腑
- this.scene.add(this.camera);
+ if (this.camera === null) {
+ //澹版槑涓�涓�忚鐩告満锛�
+ // 瑙嗚锛�60锛�
+ // 绾垫í姣攁spect:鍏ㄥ睆锛屼娇鐢ㄧ殑鏄祻瑙堝櫒鐨勫搴�/楂樺害
+ //杩戝钩闈ear锛�0.1
+ //杩滃钩闈㈣瑙抐ar:10000
+ this.camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 50000);
+ /*
+ 璁剧疆鐩告満浣嶇疆锛屾敞鎰弔hreejs涓殑鍧愭爣绯婚噰鐢ㄧ殑鏄彸鎵嬪潗鏍囩郴
+ */
+ // this.camera.position.x = 0;
+ // this.camera.position.y = 1000;
+ // this.camera.position.z = 600;
+ // //鐩告満鐨勬湞鍚�
+ // this.camera.lookAt(0, 0, 0);
+ this.camera.position.set( -350, 600, 1100 );
+ this.camera.lookAt( this.scene.position );
+ //灏嗙浉鏈烘斁鍒板満鏅腑
+ this.scene.add(this.camera);
+ } else {
+ this.camera.position.set( -350, 600, 1100 );
+ this.camera.lookAt( this.scene.position );
+ }
}
this.initRenderer = function () {
this.renderer = new THREE.WebGLRenderer();
@@ -145,18 +153,21 @@
}
this.initStats = function () {
this.stats = new Stats();
- // this.dom.appendChild( this.stats.dom );
+ this.dom.appendChild( this.stats.dom );
+ this.stats.domElement.style.display = 'none';
}
this.initBackground = function () {
- // const cubeTextureLoader = new THREE.CubeTextureLoader();
- // cubeTextureLoader.setPath( '../static/img/skybox/' );
- // this.scene.background = cubeTextureLoader.load([
- // "px.jpg", "nx.jpg",
- // "py.jpg", "ny.jpg",
- // "pz.jpg", "nz.jpg"
- // ]);
- this.scene.background = new THREE.Color( 0xf0f0f0 );
-
+ if (this.backgroundType) {
+ this.scene.background = new THREE.Color( 0xf0f0f0 );
+ } else {
+ const cubeTextureLoader = new THREE.CubeTextureLoader();
+ cubeTextureLoader.setPath( '../static/img/skybox0/' );
+ this.scene.background = cubeTextureLoader.load([
+ "px.jpg", "nx.jpg",
+ "py.jpg", "ny.jpg",
+ "pz.jpg", "nz.jpg"
+ ]);
+ }
// 澶槼
// let sky = new Sky();
// sky.scale.setScalar( 450000 );
@@ -212,7 +223,7 @@
break;
case 'Space':
if ( object.canJump === true ) {
- object.velocity.y += 350;
+ object.velocity.y += 450;
}
object.canJump = false;
break;
@@ -239,7 +250,15 @@
break;
}
};
-
+ this.controls.addEventListener( 'lock', function () {
+ console.log("绗竴浜虹О瑙嗚")
+ } );
+ this.controls.addEventListener( 'unlock', function () {
+ console.log("涓婂笣瑙嗚");
+ object.initCamera();
+ addClass(document.getElementById("ship-info-btn"), "show");
+ document.getElementById("ship-type-ul").style.transform = 'translateY(-40px)';
+ } );
document.addEventListener( 'keydown', onKeyDown );
document.addEventListener( 'keyup', onKeyUp );
@@ -259,8 +278,8 @@
this.direction.z = Number( this.moveForward ) - Number( this.moveBackward );
this.direction.x = Number( this.moveRight ) - Number( this.moveLeft );
this.direction.normalize(); // this ensures consistent movements in all directions
- if ( this.moveForward || this.moveBackward ) this.velocity.z -= this.direction.z * 400.0 * delta;
- if ( this.moveLeft || this.moveRight ) this.velocity.x -= this.direction.x * 400.0 * delta;
+ if ( this.moveForward || this.moveBackward ) this.velocity.z -= this.direction.z * 2000.0 * delta;
+ if ( this.moveLeft || this.moveRight ) this.velocity.x -= this.direction.x * 2000.0 * delta;
if ( onObject === true ) {
this.velocity.y = Math.max( 0, this.velocity.y );
this.canJump = true;
@@ -275,14 +294,6 @@
}
}
this.prevTime = time;
- }
- this.lockControl = function () {
- this.camera.position.y = 100;
- this.camera.lookAt(0,100,0);
- this.controls.getObject().position.x =0;
- this.controls.getObject().position.y =100;
- this.controls.getObject().position.z =580;
- this.controls.lock();
}
this.removeObject = function (nameorid) {
for (let i = 0; i < this.objects.length; i++) {
@@ -316,10 +327,25 @@
// this.addObject(new Floor({position: {}}))
}
+ this.initBuilding = function () {
+ let buildingData = buildingObjects.objects;
+ for (let i = 0; i < buildingData.length; i++) {
+ let objectOption = buildingData[i];
+ switch (objectOption.objectType) {
+ case "cube":
+ let cube = new Cube(objectOption);
+ this.addObject(cube);
+ break;
+ }
+ }
+ }
+ this.initConvey = function () {
+ let storeConvey = new StoreConvey(this, conveyObjects.objects)
+ storeConvey.load();
+ }
this.initStoreObjects = function (object) {
if (this.firstTime === 1) {
- initStore();
- if (Store3DData !== null) {
+ if (Store3DData !== undefined && Store3DData !== null) {
for(var group of Store3DData.data.store.groups) {
new StoreCrn(group.crn, object);
for (var line of group.lines) {
@@ -341,11 +367,12 @@
}
}
+ this.firstTime = 0;
}
}
}
this.queryCrn = function () {
- if (CrnDatas !== null) {
+ if (CrnDatas !== null && this.firstTime === 0) {
for (let crnData of CrnDatas) {
let crnTask = getArrVal(this.crnTasks, "crnNo", crnData.crnNo);
if (null == crnTask) {
@@ -368,64 +395,47 @@
}
return null;
}
- this.initModel = function () {
- let that = this;
- const manager = new THREE.LoadingManager();
- // manager.addHandler( /\.dds$/i, new DDSLoader() );
- // new MTLLoader(manager)
- // .setPath( '../static/model/obj/' )
- // .load( '璐у弶.mtl', function ( materials ) {
- // materials.preload();
- // new OBJLoader( manager )
- // .setMaterials( materials )
- // .setPath( '../static/model/obj/' )
- // .load( '璐у弶.obj', function ( object ) {
- // object.position.z = -480;
- // object.position.x = -1735;
- // object.scale.set(0.03, 0.03, 0.03);
- // object.rotateY(- Math.PI / 2)
- // that.addObject( object );
- // }, null, null );
- // });
- // new MTLLoader(manager)
- // .setPath( '../static/model/obj/' )
- // .load( '杞借揣鍙�.mtl', function ( materials ) {
- // materials.preload();
- // new OBJLoader( manager )
- // .setMaterials( materials )
- // .setPath( '../static/model/obj/' )
- // .load( '杞借揣鍙�.obj', function ( object ) {
- // object.position.z = -480;
- // object.position.x = -1735;
- // object.scale.set(0.03, 0.03, 0.03);
- // object.rotateY(- Math.PI / 2)
- // that.addObject( object );
- // }, null, null );
- // });
- // new MTLLoader(manager)
- // .setPath( '../static/model/obj/' )
- // .load( '鍫嗗灈鏈烘湰浣�.mtl', function ( materials ) {
- // materials.preload();
- // new OBJLoader( manager )
- // .setMaterials( materials )
- // .setPath( '../static/model/obj/' )
- // .load( '鍫嗗灈鏈烘湰浣�.obj', function ( object ) {
- // object.position.z = -480;
- // object.position.x = -1735;
- // // object.position.z = 0;
- // // object.position.x = 0;
- // // object.position.y = 0;
- // object.scale.set(0.03, 0.03, 0.03);
- // object.rotateY(- Math.PI / 2)
- // that.addObject( object );
- // }, null, null );
- // });
- }
this.crnMove = function (object) {
for (let crnTask of this.crnTasks) {
crnTask.move();
}
}
+
+ // 鍔熻兘鏂规硶鍖�
+ this.changeStats = function () {
+ if (this.stats.domElement.style.display === 'none') {
+ this.stats.domElement.style.display = 'block';
+ } else {
+ this.stats.domElement.style.display = 'none';
+ }
+ }
+ this.changeBackGround = function () {
+ this.backgroundType = !this.backgroundType;
+ this.initBackground();
+ }
+ this.lockControl = function () {
+ this.camera.position.y = 100;
+ this.camera.lookAt(900,1100,0);
+ this.controls.getObject().position.x = -200;
+ this.controls.getObject().position.y = 200;
+ this.controls.getObject().position.z = 200;
+ this.controls.lock();
+ }
+ this.mainView = function () {
+ this.camera.position.set( 1400, 400, 2000 );
+ this.camera.lookAt( 1400, 500, 0 );
+ }
+ this.leftView = function () {
+ this.camera.position.set( -3000, 300, -2000 );
+ this.camera.lookAt(0, 500, -2000);
+ }
+ this.verticalView = function () {
+ this.camera.position.set( 1400, 6000, -1800 );
+ this.camera.lookAt( 1400, 0, -1800 );
+ }
+ this.backlView = function () {
+ this.initCamera();
+ }
},
};
--
Gitblit v1.9.1