如何放大像素?-爪哇岛



我正在尝试用Java制作一个简单的游戏,我有一个精灵表。 我现在可以显示精灵表的单个部分,但现在我将如何放大每个精灵?(每个精灵只有 16 x 16 像素)

这是我的精灵表代码:

public class SpriteSheet {
    public BufferedImage[] getTilesToArray(String filePath, int tileWidth,
            int tileHeight) {
        BufferedImage tileSheet;
        try {
            tileSheet = ImageIO.read(SpriteSheet.class
                    .getResourceAsStream(filePath));
        } catch (IOException e) {
            System.out.println("Error loading sprite sheet");
            return null;
        }
        int yTiles = tileSheet.getHeight() / tileHeight;
        BufferedImage[] images = new BufferedImage[yTiles];
        for (int index = 0; index < yTiles; index++) {
            BufferedImage img = tileSheet.getSubimage(0, index * tileHeight,
                    tileWidth, tileHeight);
            Graphics g = img.getGraphics();
            g.drawImage(img, 100, 100, 109, 109, null);
            g.dispose();
            images[index] = img;
        }
        return images;
    }
}

我的主要课程:

 public class Main extends JFrame {
    private SpriteSheet s = new SpriteSheet();
    private BufferedImage[] sprites = s.getTilesToArray("/spritesheettest.png",
            16, 16);
    public Main() {
        super("Game Compnents");
        setSize(500, 600);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
    public static void main(String[] args) {
        Main m = new Main();
    }
    public void paint(Graphics g) {
        g.drawImage(sprites[0], 101, 101, null);
    }
}

我也看过很多精灵表上的游戏编程教程,但它们的速度太快了,以至于我不明白发生了什么。 我应该拿起一本书还是有一个简单的方法让精灵变大?

您可以使用

Image.getScaledInstance() .

当然,你缩放得越大,你就会得到像素化。最好从高分辨率图像开始并缩小它。

最新更新