Java 如何使用像素阵列从精灵表中获取精灵?

Java 如何使用像素阵列从精灵表中获取精灵?,java,image,sprite,Java,Image,Sprite,我想使用RGB值的像素数组(在.render()方法中)从精灵工作表中获取精灵。像素阵列应该保存整个图像的RGB值,以便以后从图像中获取单个精灵。有人能确切地解释一下我是怎么做到的吗?我刚得到一张黑色的照片 代码: } 更新(1): -能够通过更改spriteSheet=ImageIO.read(getClass().getResourceAsStream(“/res/marioScriteSheet.png”))来读取文件“marioScriteSheet.png” 到spriteSheet=

我想使用RGB值的像素数组(在
.render()
方法中)从精灵工作表中获取精灵。像素阵列应该保存整个图像的RGB值,以便以后从图像中获取单个精灵。有人能确切地解释一下我是怎么做到的吗?我刚得到一张黑色的照片

代码:

}

更新(1):

-能够通过更改
spriteSheet=ImageIO.read(getClass().getResourceAsStream(“/res/marioScriteSheet.png”))来读取文件“marioScriteSheet.png”

spriteSheet=ImageIO.read(getClass().getResourceAsStream(“/MarioSpriteSheet.png”)

(image res文件夹已在类路径中

新问题:

Exception in thread "main" java.lang.ClassCastException: java.awt.image.DataBufferByte cannot be cast to java.awt.image.DataBufferInt
at SpritePractice.render(SpritePractice.java:115)
at SpritePractice.run(SpritePractice.java:75)
at SpritePractice.start(SpritePractice.java:125)
at SpritePractice.main(SpritePractice.java:133)

该代码在这里抛出异常,然后将其忽略

catch (Exception e) { 
     .. 
致:


您可能应该从您在sprite工作表中读取的try/catch中打印堆栈跟踪。您可能会遇到问题…无论何时出现
try/catch
块,您都应该始终打印堆栈跟踪-这将对您有很大帮助。问题在于路径。图像位于res文件夹中。获取它的最快方法是什么?
ImageIO.read(getClass().getResourceAsStream(“/res/marioScriteSheet.png”);
Hmm..现在它给我的是IllegalArgumentException:input==null(同一行)哪个Jar包含
MarioSpriteSheet.png
?执行
Jar-tvf the.Jar
,并将输出复制/粘贴为一个文件。@andrewker这意味着该文件不存在。请确保该文件的名称拼写正确,否则可能会意外发生拼写错误。
catch (Exception e) { 
     .. 
catch (Exception e) { 
    e.printStackTrace(); // very informative! 
    ..