📄 simplesoundsbehavior.java
字号:
package sound3d;import javax.media.j3d.*;import javax.vecmath.*;import java.net.URL;import java.util.Enumeration;public class SimpleSoundsBehavior extends Behavior { WakeupOnElapsedTime wt; WakeupOnBehaviorPost wp; BackgroundSound sound1 = new BackgroundSound(); PointSound sound2 = new PointSound(); PointSound sound3 = new PointSound(); static int WAKEUP_SOUND = 0; int soundIndex = 0; URL URLName1; URL URLName2; URL URLName3; BoundingSphere bounds; public void initialize() { MediaContainer sample1 = new MediaContainer(); MediaContainer sample2 = new MediaContainer(); MediaContainer sample3 = new MediaContainer(); sample1.setCapability(MediaContainer.ALLOW_URL_WRITE); sample1.setCapability(MediaContainer.ALLOW_URL_READ); sample1.setURLObject(URLName1); sample1.setCacheEnable(false); sound1.setLoop(0); sound1.setContinuousEnable(false); sound1.setReleaseEnable(false); sound1.setSoundData(sample1); sound1.setInitialGain(0.7f); sample2.setCapability(MediaContainer.ALLOW_URL_WRITE); sample2.setCapability(MediaContainer.ALLOW_URL_READ); sample2.setURLObject(URLName2); sound2.setLoop(Sound.INFINITE_LOOPS); sound2.setContinuousEnable(false); sound2.setReleaseEnable(false); sound2.setSoundData(sample2); sound2.setInitialGain(2.0f); Point3f sound2Pos = new Point3f(-30.0f, 0.0f, 0.0f); sound2.setPosition(sound2Pos); sample3.setCapability(MediaContainer.ALLOW_URL_WRITE); sample3.setCapability(MediaContainer.ALLOW_URL_READ); sample3.setURLObject(URLName3); sound3.setContinuousEnable(false); sound3.setReleaseEnable(false); sound3.setSoundData(sample3); sound3.setInitialGain(4.0f); Point3f sound3Pos = new Point3f(30.0f, 0.0f, 0.0f); sound3.setPosition(sound3Pos); wt = new WakeupOnElapsedTime(2000); WakeupOnElapsedTime wp = new WakeupOnElapsedTime(5000); wakeupOn(wp); } public void processStimulus(Enumeration criteria) { switch (soundIndex) { case 0: sound1.setEnable(true); wakeupOn(wt); break; case 1: sound2.setEnable(true); wakeupOn(wt); break; case 2: case 4: case 6: case 8: case 10: sound3.setEnable(true); wakeupOn(wt); break; case 3: case 5: case 7: case 9: sound3.setEnable(false); wakeupOn(wt); break; case 11: sound2.setEnable(false) ; wakeupOn(wt); break; case 12: sound1.setEnable(false) ; wt = new WakeupOnElapsedTime(400000); wakeupOn(wt); break; default: break; } soundIndex++; } public SimpleSoundsBehavior(BackgroundSound sound1, PointSound sound2, PointSound sound3, URL urlName1, URL urlName2, URL urlName3, BoundingSphere soundBounds) { this.sound1 = sound1; this.sound2 = sound2; this.sound3 = sound3; this.URLName1 = urlName1; this.URLName2 = urlName2; this.URLName3 = urlName3; this.bounds = (BoundingSphere)soundBounds.clone(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -