|
26 | 26 |
|
27 | 27 | import { FirstPersonControls } from './jsm/controls/FirstPersonControls.js'; |
28 | 28 |
|
29 | | - var camera, controls, scene, renderer, light; |
| 29 | + let camera, controls, scene, renderer, light; |
30 | 30 |
|
31 | | - var material1, material2, material3; |
| 31 | + let material1, material2, material3; |
32 | 32 |
|
33 | | - var analyser1, analyser2, analyser3; |
| 33 | + let analyser1, analyser2, analyser3; |
34 | 34 |
|
35 | | - var clock = new THREE.Clock(); |
| 35 | + const clock = new THREE.Clock(); |
36 | 36 |
|
37 | | - var startButton = document.getElementById( 'startButton' ); |
| 37 | + const startButton = document.getElementById( 'startButton' ); |
38 | 38 | startButton.addEventListener( 'click', init ); |
39 | 39 |
|
40 | 40 | function init() { |
41 | 41 |
|
42 | | - var overlay = document.getElementById( 'overlay' ); |
| 42 | + const overlay = document.getElementById( 'overlay' ); |
43 | 43 | overlay.remove(); |
44 | 44 |
|
45 | 45 | camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, 10000 ); |
46 | 46 | camera.position.set( 0, 25, 0 ); |
47 | 47 |
|
48 | | - var listener = new THREE.AudioListener(); |
| 48 | + const listener = new THREE.AudioListener(); |
49 | 49 | camera.add( listener ); |
50 | 50 |
|
51 | 51 | scene = new THREE.Scene(); |
|
55 | 55 | light.position.set( 0, 0.5, 1 ).normalize(); |
56 | 56 | scene.add( light ); |
57 | 57 |
|
58 | | - var sphere = new THREE.SphereBufferGeometry( 20, 32, 16 ); |
| 58 | + const sphere = new THREE.SphereBufferGeometry( 20, 32, 16 ); |
59 | 59 |
|
60 | 60 | material1 = new THREE.MeshPhongMaterial( { color: 0xffaa00, flatShading: true, shininess: 0 } ); |
61 | 61 | material2 = new THREE.MeshPhongMaterial( { color: 0xff2200, flatShading: true, shininess: 0 } ); |
62 | 62 | material3 = new THREE.MeshPhongMaterial( { color: 0x6622aa, flatShading: true, shininess: 0 } ); |
63 | 63 |
|
64 | 64 | // sound spheres |
65 | 65 |
|
66 | | - var audioLoader = new THREE.AudioLoader(); |
| 66 | + const audioLoader = new THREE.AudioLoader(); |
67 | 67 |
|
68 | | - var mesh1 = new THREE.Mesh( sphere, material1 ); |
| 68 | + const mesh1 = new THREE.Mesh( sphere, material1 ); |
69 | 69 | mesh1.position.set( - 250, 30, 0 ); |
70 | 70 | scene.add( mesh1 ); |
71 | 71 |
|
72 | | - var sound1 = new THREE.PositionalAudio( listener ); |
| 72 | + const sound1 = new THREE.PositionalAudio( listener ); |
73 | 73 | audioLoader.load( 'sounds/358232_j_s_song.ogg', function ( buffer ) { |
74 | 74 |
|
75 | 75 | sound1.setBuffer( buffer ); |
|
81 | 81 |
|
82 | 82 | // |
83 | 83 |
|
84 | | - var mesh2 = new THREE.Mesh( sphere, material2 ); |
| 84 | + const mesh2 = new THREE.Mesh( sphere, material2 ); |
85 | 85 | mesh2.position.set( 250, 30, 0 ); |
86 | 86 | scene.add( mesh2 ); |
87 | 87 |
|
88 | | - var sound2 = new THREE.PositionalAudio( listener ); |
| 88 | + const sound2 = new THREE.PositionalAudio( listener ); |
89 | 89 | audioLoader.load( 'sounds/376737_Skullbeatz___Bad_Cat_Maste.ogg', function ( buffer ) { |
90 | 90 |
|
91 | 91 | sound2.setBuffer( buffer ); |
|
97 | 97 |
|
98 | 98 | // |
99 | 99 |
|
100 | | - var mesh3 = new THREE.Mesh( sphere, material3 ); |
| 100 | + const mesh3 = new THREE.Mesh( sphere, material3 ); |
101 | 101 | mesh3.position.set( 0, 30, - 250 ); |
102 | 102 | scene.add( mesh3 ); |
103 | 103 |
|
104 | | - var sound3 = new THREE.PositionalAudio( listener ); |
105 | | - var oscillator = listener.context.createOscillator(); |
| 104 | + const sound3 = new THREE.PositionalAudio( listener ); |
| 105 | + const oscillator = listener.context.createOscillator(); |
106 | 106 | oscillator.type = 'sine'; |
107 | 107 | oscillator.frequency.setValueAtTime( 144, sound3.context.currentTime ); |
108 | 108 | oscillator.start( 0 ); |
|
119 | 119 |
|
120 | 120 | // global ambient audio |
121 | 121 |
|
122 | | - var sound4 = new THREE.Audio( listener ); |
| 122 | + const sound4 = new THREE.Audio( listener ); |
123 | 123 | audioLoader.load( 'sounds/Project_Utopia.ogg', function ( buffer ) { |
124 | 124 |
|
125 | 125 | sound4.setBuffer( buffer ); |
|
131 | 131 |
|
132 | 132 | // ground |
133 | 133 |
|
134 | | - var helper = new THREE.GridHelper( 1000, 10, 0x444444, 0x444444 ); |
| 134 | + const helper = new THREE.GridHelper( 1000, 10, 0x444444, 0x444444 ); |
135 | 135 | helper.position.y = 0.1; |
136 | 136 | scene.add( helper ); |
137 | 137 |
|
138 | 138 | // |
139 | 139 |
|
140 | | - var SoundControls = function () { |
| 140 | + const SoundControls = function () { |
141 | 141 |
|
142 | 142 | this.master = listener.getMasterVolume(); |
143 | 143 | this.firstSphere = sound1.getVolume(); |
|
147 | 147 |
|
148 | 148 | }; |
149 | 149 |
|
150 | | - var GeneratorControls = function () { |
| 150 | + const GeneratorControls = function () { |
151 | 151 |
|
152 | 152 | this.frequency = oscillator.frequency.value; |
153 | 153 | this.wavetype = oscillator.type; |
154 | 154 |
|
155 | 155 | }; |
156 | 156 |
|
157 | | - var gui = new GUI(); |
158 | | - var soundControls = new SoundControls(); |
159 | | - var generatorControls = new GeneratorControls(); |
160 | | - var volumeFolder = gui.addFolder( 'sound volume' ); |
161 | | - var generatorFolder = gui.addFolder( 'sound generator' ); |
| 157 | + const gui = new GUI(); |
| 158 | + const soundControls = new SoundControls(); |
| 159 | + const generatorControls = new GeneratorControls(); |
| 160 | + const volumeFolder = gui.addFolder( 'sound volume' ); |
| 161 | + const generatorFolder = gui.addFolder( 'sound generator' ); |
162 | 162 |
|
163 | 163 | volumeFolder.add( soundControls, 'master' ).min( 0.0 ).max( 1.0 ).step( 0.01 ).onChange( function () { |
164 | 164 |
|
|
245 | 245 |
|
246 | 246 | function render() { |
247 | 247 |
|
248 | | - var delta = clock.getDelta(); |
| 248 | + const delta = clock.getDelta(); |
249 | 249 |
|
250 | 250 | controls.update( delta ); |
251 | 251 |
|
|
0 commit comments