java - 如何放大像素? - java

标签 java sprite sprite-sheet image-enlarge

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

这是我的 Sprite Sheet 代码:

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);
    }

}

我还看过很多关于 Sprite 表的游戏编程教程,但它们进展得太快了,我不明白发生了什么。我应该拿起一本书还是有一种简单的方法可以让 Sprite 变大?

最佳答案

您可以使用Image.getScaledInstance()

当然,缩放得越大,你就会得到像素化效果。最好从高分辨率图像开始,然后将其缩小。

关于java - 如何放大像素? - java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776416/

相关文章:

Javascript 从 Sprite 获取图像对象

java - 是否有用于处理 swing 应用程序中的数据库请求的框架?

java - 使用给定加密算法进行 Base64 解密(DES base64、secretKey、Cipher)

python - 如何使用我分配的按键绑定(bind)移动我的 Sprite ?

css - 用于导航的图像 Sprite

javascript - 在 EaselJS 中为 spritesheet 设置动画时出现问题

java - 使用变量来替换一些常量的Android API

java - 在 Windows 操作系统上,FrameView 中不显示 JDesktopPane 和 JinternalFrame

ios - SpriteKit 纹理 "scaling"彼此不同

CSS Sprite - 我可以用某种方式在 CSS 中做简单的数学运算吗?