我一直在尝试砍掉更大的图片并将其用作游戏的瓷砖。我让程序使用fillRect()来模拟图像。但是,当我替换fillRect代码时,它崩溃了。这是我一直在使用的:
buffer.drawImage(section[i][j].getSectionImage(i, j),
sectionSize * i + OFFSETx,
sectionSize * j + OFFSETy,
this);
public class Section{
private static ImageIcon ii;
private static Image mainImage;
private Image sectionImage;
public Section(){
if (ii == null){
ii = new ImageIcon(this.getClass().getResource("images/Mossy_rocks.png"));
mainImage = ii.getImage();
}
}
public Image getSectionImage(int x, int y){
sectionImage = createImage(new FilteredImageSource(mainImage.getSource(),
new CropImageFilter(1,1,20,20))); //test values
return sectionImage;
}
}
我为Section Class尝试了“扩展JApplet / JFrame / JComponent”,但它似乎没有帮助。
编辑:我还想提一下,如果我只是从getSectionImage()返回mainImage,我会得到图片。我认为最大的问题是该函数的其余部分...但我不确定,所以我在替换fillRect()时包含了我需要添加的所有内容。
答案 0 :(得分:0)
我找到了一种更好的裁剪方法。我是这样做的:
screenImage.drawImage(Image sprite,
int (x position on screen),
int (y position on screen),
int (x position on screen + width),
int (y position on screen + height),
int (x position from sprite),
int (y position from sprite),
int (x position from sprite + width),
int (y position from sprite + height),
null);