Проблемы с внедрением аудио в видеоигру JavaFX - PullRequest
2 голосов
/ 05 июня 2019

Профессор предоставил нам некоторый код видеоигры, и мы должны были изменить / добавить его.Попытка добавить аудио для фоновой музыки, столкновение игрока с врагом, смерть игрока, столкновение с сокровищами и стрельбу из пистолета.У меня есть все звуковые файлы, но их сложно было интегрировать.Я не уверен, куда их поместить или если мой код верен, но это то, что у меня есть.

Я не могу получить никаких звуковых эффектов или фоновой музыки, чтобы играть, когда я запускаю игру.

     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();

Когда я запускаю свой код, игра запускается, но как только я делаю что-то, что должно иметь звуковой эффект (столкновение с врагом, собирать сокровища), игра зависает, и я получаю эту ошибкусообщения спамят на моей консоли:

at main.Game.playSound(Game.java:102)
at main.Game.playTreasureSound(Game.java:115)
at main.Game.collisionCheck(Game.java:218)
at main.Game.access$1(Game.java:200)
at main.Game$1.handle(Game.java:240)
at javafx.animation.AnimationTimer$AnimationTimerReceiver.lambda$handle$484(AnimationTimer.java:57)
at java.security.AccessController.doPrivileged(Native Method)
at javafx.animation.AnimationTimer$AnimationTimerReceiver.handle(AnimationTimer.java:56)
at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:357)
at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:506)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:490)
at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$404(QuantumToolkit.java:319)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...