我的 Java 游戲有問題。當我想導出它時,它不會加載世界。我會得到一個“線程 - 0”異常。這是我的功能: private void loadWorld(String path){ String file = World.class.getResourceAsStream(path).toString(); file.toString(); String[] tokens = file.split("\\s+"); width = Utils.parseInt(tokens[0]); height = Utils.parseInt(tokens[1]); spawnX = Utils.parseInt(tokens[2]); spawnY = Utils.parseInt(tokens[3]); tiles = new int[width][height]; for(int y = 0;y < height;y++){ for(int x = 0;x < width;x++){ tiles[x][y] = Utils.parseInt(tokens[(x + y * width) + 4]); } }}它需要作為字符串加載,因為我需要將其中的每個字符串拆分為一個數組。管理這個的正確方法是什么?編輯: 這是堆棧跟蹤:C:\Users\User>java -jar C:\Users\User\Desktop\Game.jarException in thread "Thread-0" java.lang.NullPointerException at dev.codenmore.tilegame.worlds.World.loadWorld(World.java:76) at dev.codenmore.tilegame.worlds.World.<init>(World.java:36) at dev.codenmore.tilegame.states.GameState.<init>(GameState.java:14) at dev.codenmore.tilegame.Game.init(Game.java:61) at dev.codenmore.tilegame.Game.run(Game.java:94) at java.lang.Thread.run(Unknown Source)
2 回答

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
我做的!我使用以下代碼讀取文件: InputStream stream = World.class.getResourceAsStream("/worlds/world1.txt"); 也許它是越野車,但至少它有效!

猛跑小豬
TA貢獻1858條經驗 獲得超8個贊
總是從我朋友的調試器開始。我會彈出調試器來查看這里放置了什么路徑 World.class.getResourceAsStream(path)
空指針異常會告訴您您正在向函數傳遞一個它無法處理的空值。在調用堆棧的下方,您有
at dev.codenmore.tilegame.worlds.World.loadWorld(World.java:76)
它基本上告訴你你的 nullpointerexception 發生在哪里。您的錯誤堆棧跟蹤是問題所在的一個死板。
祝你的項目好運
添加回答
舉報
0/150
提交
取消