我的libGDX项目有点问题。在课堂上(高中时,不要想太多),我们必须做一个刽子手游戏。和我的一些朋友一起,我们开始在Scala中制作它。嗯,它有效,有点。 但问题是我无法读取生成单词的文件。它是一个yaml文件(words.yml),位于android子项目的资产中。它被打包在.jar文件中,我检查了它,但是当我尝试使用Gdx.files.internal读取它时,它会停止并显示NullPointerException。这让我烦恼,因为我能够读取图像文件。我认为不可能从核心项目的主文件中使用Gdx.files.internal来读取。但这似乎并非如此,因为如果我把它放在那个文件中它也会崩溃。
死亡的领域:
context.clearRect(0,0,cw,ch);
错误消息:
private val map: (Int, Array[String]) = {
val yaml: Yaml = new Yaml //using the snakeyaml library
//Debug
println("DBG")
println(Gdx.files.local("words.yml").path()) //<-------It crashes here
println("more DBG")
val tmp: util.LinkedHashMap[String, Any] = yaml.load(
scala.io.Source.fromFile(Gdx.files.internal("words.yml").file()) mkString)
//^^^^^or here if I remove the debug part^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(tmp.get("wordCount").asInstanceOf[Int],
tmp.get("words").toString.replaceAll("[\\[\\]]","").split(",")
.map((s: String) => {
if(s(0) == ' ') s.substring(1)
else s
}))
}
文件结构:
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.infosoftcorp.wordpress.ish.Save.<init>(Save.scala:7)
at com.infosoftcorp.wordpress.ish.InfoSoftHangman.<init>(InfoSoftHangman.scala:35)
at com.infosoftcorp.wordpress.ish.desktop.DesktopLauncher.main(DesktopLauncher.java:17)
Caused by: java.lang.NullPointerException
at com.infosoftcorp.wordpress.ish.FileHandler$.<init>(FileHandler.scala:25)
at com.infosoftcorp.wordpress.ish.FileHandler$.<clinit>(FileHandler.scala)
... 3 more
答案 0 :(得分:0)
所以我真的很蠢。 初始化新的Save时,它不会在create()函数内调用,但在它之前
好吧,有时我做的很蠢。 很抱歉因为我没有发布代码而无法回答您无法回答的愚蠢问题。