| | |
| | | this.initStats(); |
| | | this.initLight(); |
| | | this.initReSize(this); |
| | | this.initObjectSelect(); |
| | | this.initPointLockControl(this); |
| | | this.initFloor(); |
| | | this.initBuilding(); |
| | |
| | | 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 ); |
New file |
| | |
| | | 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) |
| | | } |
| | | |
| | | } |
| | |
| | | <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> |
| | | |
| | |
| | | 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'; |