クラス用のゲームを書いていますが、音声や画像を追加するのに問題があります。AndrewDavisonのKillerGameProgrammingの本からフレームワークを受け取って、それを正確にコピーしているように感じますが、サウンドを再生したり画像を表示したりしようとするとnullになります。
ファイル名は正しく読み取られていますが、音が見つかりません。私はファイルにmp3を持っています。ディレクトリが間違っているのではないかと思ったので、/Soundsと/src / Soundsの間で変更し続けましたが、役に立ちません。私は完全に立ち往生しています。
編集:私が投稿したばかりのがらくたは、インスタンス化する前にimsLoaderを渡すという単純な問題でした。はぁ。soundLoaderが同じ問題であるかどうかを確認します。みんなありがとう。
編集2:サウンドの問題は同じではありません。サウンドファイルの新しい入力ファイルストリームを作成すると、nullの結果が表示されます。
これは、URLに変更を加えた後のSDLメソッドです。
try {
java.net.URL inFile = this.getClass().getResource("/Sounds/SDLInfo.txt");
System.out.println("url " + inFile);
InputStreamReader in = new InputStreamReader(inFile.openStream());
if(in == null){
System.out.println("in is null wtf");
System.out.println("sndsFNm " + sndsFNm);
System.out.println("in contents " + this.getClass().getResourceAsStream(sndsFNm));
}
BufferedReader br = new BufferedReader(in);
StringTokenizer tokens;
String line, name, fnm;
while((line = br.readLine()) != null) {
if (line.length() == 0) // blank line
continue;
if (line.startsWith("//")) // comment
continue;
tokens = new StringTokenizer(line);
if (tokens.countTokens() != 2)
System.out.println("Wrong no. of arguments for " + line);
else {
name = tokens.nextToken();
fnm = tokens.nextToken();
load(name, fnm);
}
}
br.close();
}
catch (IOException e)
{ System.out.println("Error reading file: " + sndsFNm);
System.exit(1);
}
次のように、メインクラスでこのメソッドを呼び出す前にSDLローダーをインスタンス化します。
private static final String SDL_FILE = "SDLInfo.txt";
private SDLLoader sdlLoader;
//initialize loaders and start music
sdlLoader = new SDLLoader(SDL_FILE);
sdlLoader.play("bgmusic", true);
スタックトレース
url file:/C:/Documents%20and%20Settings/MyName/Desktop/java%20programs/Zombie%20City/bin/Sounds/SDLInfo.txt
Problem with Sounds/peaceful_music.mp3
-- bgmusic/peaceful_music.mp3
Reading file: Sounds/clipsInfo.txt
url file:/C:/Documents%20and%20Settings/MyName/Desktop/java%20programs/Zombie%20City/bin/Sounds/SDLInfo.txt
Problem with Sounds/peaceful_music.mp3
-- bgmusic/peaceful_music.mp3