我正在为班级编写游戏,但无法添加声音和图像。我们从 Andrew Davison 的 Killer Game Programming 一书中获得了可以使用的框架,我觉得我正在完全复制它,但每当我尝试播放声音或显示图像时,我都会得到空值。
文件名读取正确,但没有找到声音。我在文件中有 mp3。我想也许目录是错误的,所以我一直在 /Sounds 和 /src/Sounds 之间更改它,但它没有帮助。我完全被困住了。
编辑:在我刚刚发布的所有废话之后,这是一个在实例化之前传入 imsLoader 的简单问题。叹。我会检查 soundLoader 是否是同一个问题。多谢你们。
编辑2:声音问题不一样。为我的声音文件创建新的输入文件流时,我得到一个空结果。
这是对 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