2016-02-25 45 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 
} 

然後再繪製它應該是更易於管理。