Game Development Reference
In-Depth Information
Some things you may want to do with particles can get quite complicated. For
example, to simulate spray from a waterfall, you might use particles with some
physics applied. To simplify similar advanced use cases, two libraries have emerged.
One of them, called Sparks , is actually included with Three.js in the examples/js
folder. It's also available online at https://github.com/zz85/sparks.js and is
written by zz85 . A newer library written by Luke Moody and Lee Stemkoski is available
at https://github.com/squarefeet/ShaderParticleEngine , and while relatively
untested, the API is simpler and it's somewhat lighter in weight.
Sound
Although Three.js is a graphics library, there is an experimental THREE.AudioObject
class at examples/js/AudioObject.js that uses the Web Audio API to support
3D sound effects. This object inherits from Object3D so it can be attached to other
objects and placed in the world. It is designed to use spatially accurate 3D sound.
The main caveat is that the class only works with Chrome as of Three.js version r61
due to browser incompatibilities.
Like with external models, audio is loaded with AJAX, so
local file URLs won't work by default.
That said, let's go ahead and try adding some cheering sounds when a flag is
captured. First, we'll create our AudioObject instances when we initialize our flags:
var cheering = new THREE.AudioObject('cheering.ogg', 0, 1, false);
scene.add(cheering);
This code creates an object to play the cheering.ogg file with a volume of 0 , a
playback rate of 1 , and no looping. We set the volume to zero initially because
AudioObject plays the sound immediately, and we only want it to play when we
capture a flag. To that end, let's trigger the sound to play when we capture a flag:
THREE.AudioObject.call(cheering, 'cheering.ogg', 1, 1, false);
AudioObject does not provide a way to play a sound again, so we have to call
the constructor to force it to do that. This time, we set the volume to 1 . The crowd
goes wild!
If you set the final parameter to true instead of false , you can also use this to play
looping sounds or even music.
 
Search WWH ::




Custom Search