Профессор предоставил нам некоторый код видеоигры, и мы должны были изменить / добавить его.Попытка добавить аудио для фоновой музыки, столкновение игрока с врагом, смерть игрока, столкновение с сокровищами и стрельбу из пистолета.У меня есть все звуковые файлы, но их сложно было интегрировать.Я не уверен, куда их поместить или если мой код верен, но это то, что у меня есть.
Я не могу получить никаких звуковых эффектов или фоновой музыки, чтобы играть, когда я запускаю игру.
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)