-1

可能重复:
将 Java 游戏转换为 Applet;不会加载图片

我的所有地面纹理都有一个图像,就像一个精灵表,但只是垂直的,它每次都给我第一个块(草)。下面是加载和裁剪图像的代码:

for (int i = 0; i < Screen.tileset_ground.length; i++) {

    URL imgUrl = getClass().getResource("tileset_ground.png");
    Screen.tileset_ground[i] = getImage(imgUrl);


    ImageFilter imgF = new CropImageFilter(0, 26 * i, 26, 26);
    ImageProducer imgP = new FilteredImageSource(Screen.tileset_ground[i].getSource(), imgF);
    Screen.tileset_ground[i] = createImage(imgP);  

}
4

1 回答 1

1

首先,您需要将 for 循环中的前两行移到它之外。您只需要执行该步骤一次。

其次,您需要弄清楚您的图块集中有多少图块,并且只迭代那么多次。

所以也许是这样的?

URL imgUrl = getClass().getResource("tileset_ground.png");
tileset_image = getImage(imgUrl);

num_images = HOWEVER MANY IMAGES ARE IN THE TILESET

for (int i = 0; i < num_images; i++) {

    ImageFilter imgF = new CropImageFilter(0, 26 * i, 26, 26);
    ImageProducer imgP = new FilteredImageSource(tileset_image.getSource(), imgF);
    Screen.tileset_ground[i] = createImage(imgP);  

}
于 2012-12-07T23:04:03.183 回答