-1

重複の可能性:
Javaゲームをアプレットに変換。写真を読み込まない

スプライトシートのように、すべてのグラウンドテクスチャに対して単一の画像がありますが、垂直方向であり、毎回最初のブロック(草)が表示されます。画像を読み込んでトリミングするためのコードは次のとおりです。

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ループの最初の2行をその外側に移動する必要があります。そのステップを1回だけ実行する必要があります。

次に、タイルセットに含まれるタイルの数を把握し、その回数だけ繰り返す必要があります。

だから多分このようなもの?

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 に答える