如何放大像素JAVA
我正在尝试用Java制作一个简单的游戏,我有一个精灵表。我现在可以显示精灵表的单个部分,但现在如何放大每个精灵?(每个精灵只有16×16像素) 以下是我的精灵表代码:如何放大像素JAVA,java,sprite,sprite-sheet,image-enlarge,Java,Sprite,Sprite Sheet,Image Enlarge,我正在尝试用Java制作一个简单的游戏,我有一个精灵表。我现在可以显示精灵表的单个部分,但现在如何放大每个精灵?(每个精灵只有16×16像素) 以下是我的精灵表代码: public class SpriteSheet { public BufferedImage[] getTilesToArray(String filePath, int tileWidth, int tileHeight) { BufferedImage tileSheet;
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;
}
}
我也看过很多关于精灵工作表的游戏编程教程,但是它们太快了,我不明白到底发生了什么。我是应该拿起一本书,还是有一种简单的方法可以让精灵变大?您可以使用
Image.getScaledInstance()
当然,你将得到更大的规模pixilation它。最好从高分辨率图像开始并将其缩小。
如何放大精灵?
获取更大的精灵图像。你不能简单地放大任何图像而不期望图像退化。所以。。。我应该做更大的雪碧吗?@BaconLover:你是怎么“做”的?通常你必须得到更大的精灵。这是最简单的方法。另外,不要重写paint()方法来进行自定义绘制。阅读上的Swing教程,了解正确的方法。@HovercraftFullOfEels我只是用Paint.NET制作它们。
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);
}
}