I've got a game, and I'm trying to do it right. I've got a spritesheet (which is really just a class that loads images for easy access. It seems to work, but then my tile system starts, and it fails in an interesting way - it loads only the foreground, and displays only that color for all 1024 pixels for each tile. I've no idea what could possibly be going wrong. I've tried using the ImageIO class's read method, and a more unorthodox way (using an ImageIcon's getImage method). The source is attached below in a zip.