为了账号安全,请及时绑定邮箱和手机立即绑定

World Loader 不会将 world1.txt 作为字符串加载

World Loader 不会将 world1.txt 作为字符串加载

心有法竹 2022-10-12 09:51:14
我的 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"); 也许它是越野车,但至少它有效!



查看完整回答
反对 回复 2022-10-12
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

总是从我朋友的调试器开始。我会弹出调试器来查看这里放置了什么路径 World.class.getResourceAsStream(path)

空指针异常会告诉您您正在向函数传递一个它无法处理的空值。在调用堆栈的下方,您有

at dev.codenmore.tilegame.worlds.World.loadWorld(World.java:76)

它基本上告诉你你的 nullpointerexception 发生在哪里。您的错误堆栈跟踪是问题所在的一个死板。

祝你的项目好运


查看完整回答
反对 回复 2022-10-12
  • 2 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号