我研究并研究了PlayN游戏框架,我非常喜欢它。我用Scala编程,实际上不懂Java,但这通常不是问题,因为他们一起工作很好。
我在eclipse中设置了一个基本项目,并导入了所有库和依赖项。我甚至翻译了基本的maven项目代码。这是两个文件:
Zeitgeist.scala
package iris.zeit.core
import playn.core.PlayN._
import playn.core.Game
import playn.core.Image
import playn.core.ImageLayer
class Zeitgeist extends Game {
override def init (){
var bgImage: Image = assets().getImage("images/bg.png")
var bgLayer: ImageLayer = graphics().createImageLayer(bgImage)
graphics().rootLayer().add(bgLayer)
}
override def paint (alpha: Float){
//painting stuffs
}
override def update(delta: Float){
}
override def updateRate(): Int = {
25
}
}Main.scala
package iris.zeit.desktop
import playn.core.PlayN
import playn.java.JavaPlatform
import iris.zeit.core.Zeitgeist
object Main {
def main(args: Array[String]){
var platform: JavaPlatform = JavaPlatform.register()
platform.assets().setPathPrefix("resources")
PlayN.run(new Zeitgeist())
}
}最酷的是它能工作!一扇窗户开得很好。唯一的问题是我似乎不能加载图像。在上面的一行中,“assets().getImage(”映像/bg.png“)”弹出
Could not load image: resources/images/bg.png [error=java.io.FileNotFoundException: resources/images/bg.png]我一直在玩我的资源文件的位置,但没有结果。我甚至和java.io.File一起找到了java.io.File。,我是不是做错什么了?有什么东西我忘了吗?
发布于 2013-01-20 11:18:24
查看JavaAssetsManage代码r,它看起来像是在加载资源,而不是文件。因此,您应该检查您的图像实际上在类路径中,并位于您提供的路径上("resources/ images /bp.png")。
或者,您可以使用getRemoteImage并传递一个文件URL。当您成功地使用了java.io.File时,您只需使用文件的toUri方法获得URL (不推荐toUrl)。
发布于 2018-11-03 12:01:30
这几乎肯定是行不通的,因为你要这样做:
platform.assets().setPathPrefix("resources")这意味着您的源文件夹如下所示:
src/main/resources/resources/images/bg.png
src/main/resources/resources/images/pea.png
src/main/resources/resources/images我想它看起来就像这样的一个:
src/main/resources/assets/images/bg.png <-- 'assets' the default prefix
src/main/resources/assets/images/pea.png
src/main/resources/assets/images或者:
src/main/resources/images/bg.png <-- You have failed to put a subfolder prefix in
src/main/resources/images/pea.png
src/main/resources/images如果没有前缀,可以这样做:
plat.assets().setPathPrefix("")或者只需将您的文件放在assets子文件夹中的resources文件夹中。
值得注意的是,当前的实现调用:
getClass().getClassLoader().getResource(...)不是:
getClass().getResource(...)差别在其他地方也有,但是tldr是plat.assets.getImage("images/pea.png")可以工作,但是plat.assets.getImage("/images/pea.png")不能工作。
https://stackoverflow.com/questions/14422215
复制相似问题