我在下面使用了这段代码,它出现了这个堆栈跟踪:
java.io.FileNotFoundException: font.ttf (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at java.io.FileInputStream.<init>(FileInputStream.java:101)
at com.ominious.core.graphics.Assets.getFont(Assets.java:55)
at com.ominious.core.graphics.Assets.loadImages(Assets.java:37)
at com.ominious.core.GamePanel.init(GamePanel.java:63)
at com.ominious.core.GamePanel.run(GamePanel.java:69)
at java.lang.Thread.run(Thread.java:744)
Exception in thread "Thread-1" java.lang.NullPointerException
at com.ominious.core.graphics.Assets.loadImages(Assets.java:49)
at com.ominious.core.GamePanel.init(GamePanel.java:63)
at com.ominious.core.GamePanel.run(GamePanel.java:69)
at java.lang.Thread.run(Thread.java:744)
Run Code Online (Sandbox Code Playgroud)
我使用这段代码(我在资源文件中调用我知道有效的方法)
private static Font getFont(String name) throws Exception {
Font font = Font.createFont(Font.TRUETYPE_FONT, new FileInputStream(name));
return font;
}
Run Code Online (Sandbox Code Playgroud)
我在这里称之为:
try {
FONT = getFont("font.ttf");
tileSprites = ImageIO.read(getClass().getResourceAsStream("/mom.gif"));
SPLASH_BACKGROUND = ImageIO.read(getClass().getResourceAsStream("/swag.gif"));
} catch (Exception e) {
Game.logger.log(LogType.ERROR_STACKTRACE);
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
(上面的类有效,我的图像加载)
这不起作用有什么原因吗?有更好的方法吗?(是的,我的目录中有它)
我很困惑.我使用这种格式来读取字符串中的播放器名称,如下所示:
"[PLAYER_yourname]"
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几个小时,无法弄清楚如何只读取'_'之后和']'之前的部分来获取名称.
我可以帮忙吗?我玩子字符串,分裂,一些正则表达式,没有运气.谢谢!:)
顺便说一句:这个问题是不同的,如果我分开_我不知道如何停在第二个括号,因为我有其他字符串线经过第二个括号.谢谢!