无法在JavaFX电子游戏中实现音频

时间:2019-06-05 20:53:16

标签: java javafx audio

教授为我们提供了一些视频游戏代码,我们不得不对其进行更改/添加。 一直试图添加音频作为背景音乐,玩家与敌人碰撞,玩家死亡,与宝藏碰撞以及开枪。 我拥有所有声音文件,但是很难集成它们。我不确定将它们放在哪里或我的代码是否正确,但这是我到目前为止所拥有的。

运行游戏时,我无法播放任何声音效果或背景音乐。

char

当我运行代码时,游戏就会运行,但是一旦我执行了应该具有声音效果的操作(与敌人碰撞,捡到宝藏),游戏就会冻结,并且我会收到错误消息,这些错误消息会在我的控制台上发送出去:

     private MediaPlayer backgroundMusicPlayer;
     private String playerCollideEnemyMusicFile =     "player_collide_enemy.wav";
     private String playerDyingMusicFile = "player_die.wav";
     private String playerCollideTreasureMusicFile = "treasure.wav";
     private String playerFiringMusicFile = "player_firing.wav";


 private void playSound(String musicFile) {
    String musicFileUrl = this.getClass().getResource("/resources/" + musicFile).toExternalForm();
    AudioClip audioClip = new AudioClip(musicFileUrl);
    audioClip.play();  
    }

private void playEnemySound() {
    playSound(playerCollideEnemyMusicFile);
    }  

private void playDyingSound() {
    playSound(playerDyingMusicFile);
    }

private void playTreasureSound() {
    playSound(playerCollideTreasureMusicFile);
    }



 } else if (r.getFill().equals(Color.GREEN)) {   // GREEN =    treasure/chest
                Treasure t = getTreasure(r);
                if (!t.isOpen()) {
                    score.set(score.get() + 10);    // increase the  score
                    chestCount--;   // decrease our global chest count to track end of level
                    t.openNow();    // open the chest so it can't be opened twice
                }
                playTreasureSound();

0 个答案:

没有答案