I have created a simple game in which an object (boy) eats all the cherries avoiding snakes and bombs.
When the game starts, a background sound is played.
When the boy eats a cherry, a pop sound is played.
But when the pop sound is played, the background music is faded where you can't even hear it until about 7 seconds later that would the background sound is heard.
Please help me to fix this problem.
This is my MyWorld class:
This is the Cherries class:
And this the boy class:
public class MyWorld extends World { GreenfootSound bksound = new GreenfootSound("background.mp3"); public static int score; public void act() { bksound.play(); showText("Score: " + score, 550, 25); if(score == 10) { addObject(new YouWin(), 300, 200); Greenfoot.playSound("Cheering.wav"); bksound.stop(); Greenfoot.stop(); } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Cherry here. * * @author (your name) * @version (a version number or a date) */ public class Cherries extends Actor { /** * Act - do whatever the Cherry wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ //int counter=0; public void act() { // Add your action code here. } public void Cherries() { getImage().scale(getImage().getWidth()/2, getImage().getHeight()/2); } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class boy here. * * @author (your name) * @version (a version number or a date) */ public class boy extends Actor { MyWorld total; /** * Act - do whatever the boy 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. move(); touching(); } public void move() { if (Greenfoot.isKeyDown("up")) { setLocation(getX(), getY()-2); } if (Greenfoot.isKeyDown("down")) { setLocation(getX(), getY()+2); } if (Greenfoot.isKeyDown("right")) { setLocation(getX()+2, getY()); } if (Greenfoot.isKeyDown("left")) { setLocation(getX()-2, getY()); } } public void touching() { if (isTouching (bomb.class)) { Greenfoot.playSound("explosions.wav"); getWorld().addObject(new YouLose(), 300, 200); getWorld().removeObject(this); Greenfoot.stop(); } else if (isTouching (snake.class)) { Greenfoot.playSound("snakehit.wav"); getWorld().addObject(new YouLose(), 300, 200); getWorld().removeObject(this); Greenfoot.stop(); } else if (isTouching (Cherries.class)) { Greenfoot.playSound("Pop sound effect.wav"); total.score++; removeTouching(Cherries.class); } } }