我一直在关注YouTube上的教程来创建一个基本的2D Java游戏。我已经有一个窗口弹出我的文字和一个矩形,但我似乎根本无法加载图像。没有错误消息,图像只是不会出现。
处理图片的代码源位于"呈现"方法如下:
package javagame;
import org.newdawn.slick.*;
import org.newdawn.slick.state.*;
public class Menu extends BasicGameState {
public Menu(int state) {}
@Override
public void init(GameContainer gc, StateBasedGame sbg) throws SlickException {}
@Override
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException {
g.drawString("Test Text", 50, 50);
g.drawRect(50, 100, 60, 120); //x y width height
Image obama = new Image("res/obama.jpg");
g.drawImage(obama, 200, 130);
}
@Override
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException {
}
@Override
public int getID() {
return 0;
}
}
这位于控制台中:
Wed Feb 24 21:03:43 EST 2016 INFO:Slick Build #116 Wed Feb 24 21:03:43 EST 2016 INFO:LWJGL Version: 2.9.3 Wed Feb 24 21:03:43 EST 2016 INFO:OriginalDisplayMode: 1600 x 900 x 32 @60Hz Wed Feb 24 21:03:43 EST 2016 INFO:TargetDisplayMode: 800 x 500 x 0 @0Hz Wed Feb 24 21:03:43 EST 2016 INFO:Starting display 800x500 Wed Feb 24 21:03:43 EST 2016 ERROR:Failed to initialise controllers org.lwjgl.LWJGLException: Failed to initialise controllers at org.lwjgl.input.Controllers.create(Controllers.java:86) at org.newdawn.slick.Input.initControllers(Input.java:603) at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:263) at javagame.Game.main(Game.java:36) Caused by: java.lang.NoClassDefFoundError: net/java/games/input/ControllerEnvironment at org.lwjgl.input.Controllers.create(Controllers.java:69) ... 3 more Caused by: java.lang.ClassNotFoundException: net.java.games.input.ControllerEnvironment at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 4 more Wed Feb 24 21:03:43 EST 2016 INFO:Controllers not available
如果需要,我还可以包括我的主要Game类。
虽然我过去专注于Java的基础计算机科学课程,但我们从未专注于图形组件,所以我不太确定我做错了什么。任何帮助将不胜感激!
答案 0 :(得分:0)
您的程序中有一些错误,您可以使用异常堆栈跟踪进行调试。那些需要先处理。
您最大的错误似乎是编译器不知道在哪里找到您的班级ControllerEnvironment
。然后,在你得到修复后:
使用类java.awt.image.BufferedImage读取图像,如下所示:
BufferedImage bi;
try {
bi = ImageIO.read(new File("res/obama.jpg"));
} catch (IOException e){
//Handle if file is missing
}
然后绘制它应该更容易管理。