I was modifying my spritesheet loading class to use 64x64 sized images from another sheet, and it now throws this error:
1 2 3 4 5 6 7 8 9
| Exception in thread "Thread-3" java.awt.image.RasterFormatException: (y + height) is outside of Raster at sun.awt.image.ByteInterleavedRaster.createWritableChild(Unknown Source) at java.awt.image.BufferedImage.getSubimage(Unknown Source) at com.natekramber.gfx.SpriteSheet.<init>(SpriteSheet.java:47) at com.natekramber.gfx.Screen.<init>(Screen.java:20) at com.natekramber.Menu.<init>(Menu.java:16) at com.natekramber.Game.init(Game.java:44) at com.natekramber.Game.run(Game.java:55) at java.lang.Thread.run(Unknown Source) |
Here's the spritesheet source:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| package com.natekramber.gfx;
import java.awt.image.BufferedImage; import java.io.IOException;
import javax.imageio.ImageIO;
public class SpriteSheet { final int width16 = 16, height16 = 16, width64 = 64, height64 = 64 ; public final int rows16 = 10, cols16 = 10, rows64 = 4, cols64 = 10 ; public BufferedImage sheet16, sheet64 ; public BufferedImage[] sprites16, sprites64; public SpriteSheet() { try { sheet16 = ImageIO.read(SpriteSheet.class.getClassLoader().getResourceAsStream("img/spritesheet16.png")); } catch (IOException e) { e.printStackTrace(); } try { sheet64 = ImageIO.read(SpriteSheet.class.getClassLoader().getResourceAsStream("img/spritesheet64.png")); } catch (IOException e) { e.printStackTrace(); } sprites16 = new BufferedImage[rows16 * cols16]; for (int i = 0; i < rows16; i++) { for (int j = 0; j < cols16; j++) { sprites16[(i * cols16) + j] = sheet16.getSubimage( i * width16 + i * 3, j * height16 + j * 3, width16, height16 ); } } sprites64 = new BufferedImage[rows64 * cols64]; for (int i = 0; i < rows64; i++) { for (int j = 0; j < cols64; j++) { sprites64[(i * cols64) + j] = sheet64.getSubimage( i * width64 + i * 3, j * height64 + j * 3, width64, height64 ); } } } } |
Why is it doing this? I have the exact same code for another game, and it doesn't throw any errors. It's even almost the same for the loader above it.
Thanks,
-Nathan