2016-02-25 99 views
0

我一直在关注YouTube上的教程以创建一个基本的2D Java游戏。我有一个窗口弹出我的文字和一个矩形,但我似乎无法加载图像。没有错误信息,图像就不会出现。在我的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 

我如果需要的话,也可以包含我的主游戏类。

虽然过去我已经学习了一门基于Java的计算机科学课,但我们从未真正专注于图形组件,所以我不太确定自己做错了什么。任何帮助将非常感激!

+0

它在错误“由:java.lang.ClassNotFoundException:net.java.games.input.ControllerEnvironment'引起。您必须将其包含到类路径 – Sachin

+0

“没有错误消息...” - 控制台中具有“例外”的所有消息都是错误消息 –

+0

看起来您有错误的项目设置。通过添加JInput jar来修复你的类路径。 – waxtah

回答

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 
} 

然后再绘制它应该是更易于管理。