Skip to content
Snippets Groups Projects
Commit 036cc952 authored by Barth Carolin's avatar Barth Carolin
Browse files

Added Music, Plays music when slecting game mode

parent c47bf7ba
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
......@@ -2,6 +2,7 @@ module gui {
requires javafx.controls;
requires javafx.fxml;
requires org.apache.logging.log4j;
requires java.desktop;
opens org.example.startScreen to javafx.fxml;
exports org.example.startScreen;
......
......@@ -26,6 +26,8 @@ public abstract class AbstractSnakeGameController implements Initializable, ICon
private Snake snake;
private Text score;
Music music = new Music();
public abstract AnchorPane getScreen();
protected Text getScore() {
......@@ -45,6 +47,8 @@ public abstract class AbstractSnakeGameController implements Initializable, ICon
startTimerThread();
score = new Text(0, 33 , "0");
music.start();
newFood();
newSnake();
......
package org.example.snakeGame;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javax.sound.sampled.*;
import java.io.File;
import java.io.IOException;
public class Music extends Thread {
private static final Logger log = LogManager.getLogger(Music.class);
/**
* Method loads audio file and plays it on repeat
*/
public void run(){
try {
//create new file with the soundtrack
log.info("Load audio data into File");
File f = new File("./src/main/resources/sounds/20thCentury.aiff");
//create AudioInputStream object to get soundtrack out of file
AudioInputStream audioInput = AudioSystem.getAudioInputStream(f);
//crate clip object to handle how soundtrack should be played
Clip clip = AudioSystem.getClip();
clip.open(audioInput);
log.info("Start music");
clip.start();
//loop soundtrack
clip.loop(Clip.LOOP_CONTINUOUSLY);
} catch (UnsupportedAudioFileException | LineUnavailableException | IOException e) {
e.printStackTrace();
}
/**
public void stopMusic() {
try {
Clip clip = AudioSystem.getClip();
if (clip != null && clip.isRunning()) {
clip.stop();
clip.close();
}
} catch (LineUnavailableException e) {
throw new RuntimeException(e);
}
*/
}
}
......@@ -5,18 +5,23 @@ import javafx.scene.layout.AnchorPane;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class SnakeGameControllerBezwinger extends AbstractSnakeGameController {
private final static Logger log = LogManager.getLogger(SnakeGameControllerBezwinger.class);
private static final int width = 600;
private static final int height = 500;
@FXML
private AnchorPane screen;
private void endGame() {
screen.getChildren().clear();
screen.getChildren().add(getScore());
getScore().setText("Game Over "+ getSnake().getLength());
music.interrupt();
}
/**
......
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment