From 1bca763ee1fd55c6136557ac399c1a55672ecb72 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期五, 31 十二月 2021 10:26:59 +0800 Subject: [PATCH] # --- static/js/app.js | 13 +++++++++++++ static/js/object/ObjectSelect.js | 30 ++++++++++++++++++++++++++++++ views/index.html | 5 +++-- 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/static/js/app.js b/static/js/app.js index 075903c..fe024a4 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -45,6 +45,7 @@ this.initStats(); this.initLight(); this.initReSize(this); + this.initObjectSelect(); this.initPointLockControl(this); this.initFloor(); this.initBuilding(); @@ -178,6 +179,18 @@ object.renderer.setSize(window.innerWidth, window.innerHeight); }, false); } + this.initOutLine = function(){ + // this.outlinePass = new THREE.OutlinePass(new THREE.Vector2(window.innerWidth, window.innerWidth), this.scene, this.camera); + // this.outlinePass.edgeStrength = 10;//鍖呭洿绾挎祿搴� + // this.outlinePass.edgeGlow = 0.1;//杈圭紭绾胯寖鍥� + // this.outlinePass.edgeThickness = 1;//杈圭紭绾挎祿搴� + // this.outlinePass.pulsePeriod = 2;//鍖呭洿绾块棯鐑佽瘎鐜� + // this.outlinePass.visibleEdgeColor.set('#B31985');//鍖呭洿绾块鑹� + // this.outlinePass.hiddenEdgeColor.set('#190a05');//琚伄鎸$殑杈圭晫绾块鑹� + } + this.initObjectSelect = function(){ + new ObjectSelect(this.scene, this.camera); + } this.initPointLockControl = function(object){ this.controls = new PointerLockControls( this.camera, document.body ); this.raycaster = new THREE.Raycaster( new THREE.Vector3(), new THREE.Vector3( 0, - 1, 0 ), 0, 50 ); diff --git a/static/js/object/ObjectSelect.js b/static/js/object/ObjectSelect.js new file mode 100644 index 0000000..08069ea --- /dev/null +++ b/static/js/object/ObjectSelect.js @@ -0,0 +1,30 @@ +function ObjectSelect(_scene, _camera,outlinePass) { + var raycaster = new THREE.Raycaster(); + var mouse = new THREE.Vector2(); + var selectedObjects = []; + + window.addEventListener( 'click', onMouseClick); + + function onMouseClick(event) { + let x, y; + if (event.changedTouches) { + x = event.changedTouches[0].pageX; + y = event.changedTouches[0].pageY; + } else { + x = event.clientX; + y = event.clientY; + } + mouse.x = (x/ window.innerWidth) * 2 - 1; + mouse.y = -(y/ window.innerHeight) * 2 + 1; + raycaster.setFromCamera(mouse, _camera); + var intersects = raycaster.intersectObjects([_scene], true); + + + if (intersects.length === 0) { + return; + } + let selectObject = intersects[0].object; + console.log(selectObject) + } + +} diff --git a/views/index.html b/views/index.html index a56dff4..91c2d41 100644 --- a/views/index.html +++ b/views/index.html @@ -23,6 +23,7 @@ <script type="text/javascript" src="../static/js/object/Route.js"></script> <script type="text/javascript" src="../static/js/object/CrnTask.js"></script> <script type="text/javascript" src="../static/js/object/Floor.js"></script> + <script type="text/javascript" src="../static/js/object/ObjectSelect.js"></script> </head> <body> @@ -234,8 +235,8 @@ var speedDom = document.getElementById("speed"); var timer = setInterval(function () { if (percent < 100.00) { - percent += 0.04; - // percent += 1; + // percent += 0.04; + percent += 1; speedDom.innerText = percent.toFixed(2); } else { speedDom.innerText = '100.00'; -- Gitblit v1.9.1