Task 1 - Improved Factory pattern
This commit is contained in:
parent
12d4bb3c4d
commit
2cd827bdab
@ -1,7 +1,5 @@
|
||||
package fr.enssat.BoulderDash.bridges;
|
||||
|
||||
public class SoundBridgeFactory {
|
||||
public static SoundBridge createSoundBridgeFromFilePath(String filePath) {
|
||||
return new SoundJLayerBridge(filePath);
|
||||
}
|
||||
public abstract class SoundBridgeFactory {
|
||||
public abstract SoundBridge createSoundBridgeFromFilePath(String filePath);
|
||||
}
|
||||
|
@ -0,0 +1,10 @@
|
||||
package fr.enssat.BoulderDash.bridges;
|
||||
|
||||
public class SoundJLayerBridgeFactory extends SoundBridgeFactory {
|
||||
public SoundJLayerBridgeFactory() {}
|
||||
|
||||
@Override
|
||||
public SoundBridge createSoundBridgeFromFilePath(String filePath) {
|
||||
return new SoundJLayerBridge(filePath);
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ package fr.enssat.BoulderDash.controllers;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import fr.enssat.BoulderDash.bridges.SoundJLayerBridgeFactory;
|
||||
import fr.enssat.BoulderDash.helpers.AudioLoadHelper;
|
||||
import fr.enssat.BoulderDash.models.LevelModel;
|
||||
import fr.enssat.BoulderDash.views.MenuView;
|
||||
@ -27,7 +28,7 @@ public class NavigationBetweenViewController implements ActionListener {
|
||||
* Class constructor
|
||||
*/
|
||||
public NavigationBetweenViewController() {
|
||||
this.audioLoadHelper = new AudioLoadHelper();
|
||||
this.audioLoadHelper = new AudioLoadHelper(new SoundJLayerBridgeFactory());
|
||||
|
||||
// Play game music
|
||||
this.getAudioLoadHelper().startMusic("game");
|
||||
|
@ -18,13 +18,15 @@ import java.util.HashMap;
|
||||
public class AudioLoadHelper {
|
||||
private static String pathToAudioStore = "./res/audio";
|
||||
|
||||
private SoundBridgeFactory soundBridgeFactory;
|
||||
private SoundBridge musicToPlay;
|
||||
private HashMap<String, SoundBridge> preloadedSounds;
|
||||
|
||||
/**
|
||||
* Class constructor
|
||||
*/
|
||||
public AudioLoadHelper() {
|
||||
public AudioLoadHelper(SoundBridgeFactory soundBridgeFactory) {
|
||||
this.soundBridgeFactory = soundBridgeFactory;
|
||||
this.preloadSounds();
|
||||
}
|
||||
|
||||
@ -49,7 +51,7 @@ public class AudioLoadHelper {
|
||||
}
|
||||
|
||||
String filePath = this.getMusicPathInAudioStore(musicId);
|
||||
this.musicToPlay = SoundBridgeFactory.createSoundBridgeFromFilePath(filePath);
|
||||
this.musicToPlay = soundBridgeFactory.createSoundBridgeFromFilePath(filePath);
|
||||
this.musicToPlay.play();
|
||||
}
|
||||
|
||||
@ -77,13 +79,13 @@ public class AudioLoadHelper {
|
||||
}
|
||||
});
|
||||
|
||||
// Cache them all!
|
||||
// Cache them all!^
|
||||
for (File curSoundId : soundFiles) {
|
||||
curSoundIdPrep = curSoundId.getName();
|
||||
curSoundIdPrep = curSoundIdPrep.substring(0, curSoundIdPrep.lastIndexOf('.'));
|
||||
|
||||
this.preloadedSounds.put(curSoundIdPrep,
|
||||
SoundBridgeFactory.createSoundBridgeFromFilePath(curSoundId.getPath()));
|
||||
soundBridgeFactory.createSoundBridgeFromFilePath(curSoundId.getPath()));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user