I'm completely stuck on how to implement the volume up and down buttons to change the volume of the song. So far I have been able to decrease the volume, but the variable I have for volume is not being updated for both classes? I'm sure it's a simple fix, but I am lost and could use some advice.
public class MyWorld extends World { GreenfootSound music = new GreenfootSound("freebird.mp3"); private GreenfootImage volumeB = new GreenfootImage(50, 60); private int volume = 100; /** * Constructor for objects of class MyWorld. * */ public MyWorld(){ // Create a new world with 600x400 cells with a cell size of 1x1 pixels. super(600, 400, 1); setButtons(); } public int getVolume(){ return volume; } public void setTheVolume(int volume){ this.volume = volume; } public void setButtons(){ startButton start = new startButton(music); addObject(start, 300, 200); volumeDown olumeDown = new volumeDown(music, volume); addObject(olumeDown, 70, 300); volumeUp olumeUp = new volumeUp(music, volume); addObject(olumeUp, 70, 250); } }
public class volumeDown extends Actor { private GreenfootSound music; private int volume; public volumeDown(){} public volumeDown(GreenfootSound music, int vol){ this.music = music; this.volume = vol; } /** * Act - do whatever the volumeDown wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { // Add your action code here. volumeDecrease(); setTheVolume(); } //decrease the volume. public void volumeDecrease(){ if(Greenfoot.mouseClicked(this)){ if(volume >= 5){ volume -= 5; music.setVolume(volume); } System.out.println(volume); } } //Set the volume??(Help) public void setTheVolume(){ MyWorld world = new MyWorld(); world.setTheVolume(volume); } }
public class volumeUp extends Actor { private GreenfootSound music; private int volume; public volumeUp(){} public volumeUp(GreenfootSound music, int vol){ this.music = music; this.volume = vol; } /** * Act - do whatever the volumeDown wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { // Add your action code here. volumeIncrease(); setTheVolume(); } //decrease the volume. public void volumeIncrease(){ if(Greenfoot.mouseClicked(this)){ if(volume <= 95){ volume += 5; music.setVolume(volume); } System.out.println(volume); } } //Set the volume??(Help) public void setTheVolume(){ MyWorld world = new MyWorld(); world.getVolume(); world.setTheVolume(volume); } }