In my scenario, there is a title screen world that plays sound when it is initialized, and has a button to go to a cutscene world. Both are subclasses of the foodtruck class. The cutscene world stops the sound then runs an ask prompt for the player's username. Whenever I run the scenario, input something in the prompt, and reset to enter the title world again, the sound there becomes really glitchy and gives me a weird error:
Foodtruck class:
Title class:
cutscene class:
The error doesn't happen if I don't input something in the prompt beforehand, so I think it has something to do with that. Any help would be really appreciated!!
1 2 3 4 5 6 7 8 9 10 11 | Exception in thread "SoundStream:file:/C:/Users/John%20Doe/OneDrive/Summative/sounds/foodtrucktitle.mp3" java.lang.IndexOutOfBoundsException at java.base/java.io.PushbackInputStream.read(PushbackInputStream.java: 166 ) at javazoom.jl.decoder.Bitstream.readBytes(Bitstream.java: 639 ) at javazoom.jl.decoder.Bitstream.syncHeader(Bitstream.java: 428 ) at javazoom.jl.decoder.Header.read_header(Header.java: 122 ) at javazoom.jl.decoder.Bitstream.nextFrame(Bitstream.java: 328 ) at javazoom.jl.decoder.Bitstream.readNextFrame(Bitstream.java: 315 ) at javazoom.jl.decoder.Bitstream.readFrame(Bitstream.java: 286 ) at greenfoot.sound.Mp3AudioInputStream.read(Mp3AudioInputStream.java: 221 ) at greenfoot.sound.SoundStream.run(SoundStream.java: 303 ) at java.base/java.lang.Thread.run(Thread.java: 833 ) |
1 2 3 4 5 6 7 8 9 10 11 | public class FoodTruck extends World { private static String question; //stores player name boolean isAsked; //name ask condition SimpleTimer timer = new SimpleTimer(); //timer object boolean timerRunning; // timer start condition private static int day; //game days static GreenfootSound title = new GreenfootSound( "foodtrucktitle.mp3" ); static GreenfootSound daystart = new GreenfootSound( "daystart.mp3" ); static GreenfootSound order = new GreenfootSound( "truckorder.mp3" ); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class FoodTruckStart extends FoodTruck { /** * Constructor for objects of class FoodTruckStart. * */ public FoodTruckStart() { addObject( new FoodTruckPlay(), 100 , 200 ); addObject( new FoodTruckSet(), 200 , 200 ); addObject( new back(), 300 , 200 ); title.playLoop(); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | public class FoodTruckCutscene extends FoodTruck { /** * Constructor for objects of class FoodTruckCutscene. * */ public FoodTruckCutscene() { addObject( new skipcutscene(), 550 , 350 ); } public void act() { title.stop(); if (!isAsked) { setQuestion(Greenfoot.ask( "Enter your name:" )); isAsked = true ; } if (isAsked) { if (!timerRunning) { timer.mark(); timerRunning = true ; } if (timerRunning && timer.millisElapsed() > 1000 && timer.millisElapsed() < 4000 ) { setBackground( "concept1.png" ); //cutscene sequence. will do later } else if (timerRunning && timer.millisElapsed() > 4000 ) { Greenfoot.setWorld( new FoodTruckDay()); } } } } |