1

メインクラスでは、次のようにグラフィックス オブジェクトを描画しています。

//FIELDS
double FPS = 1000 / 60;
BufferStrategy bs;
public String ip; 
private int cx = 0;
private Hero h;
private TileMap map;
private int speed = 12;



public mainCla (){

    setPreferredSize(new Dimension(WIDTH, HEIGHT));
    h = new Hero("Hero/res/hero.png",100,50);
    map = new TileMap ("Hero/res/jun.png");


}


private void draw() {
        bs = getBufferStrategy();
        if (bs == null) {
        createBufferStrategy(3);
        return;
    }

    Graphics g = bs.getDrawGraphics();
    g.setColor(Color.WHITE);
    g.fillRect(0, 0, getWidth(), getHeight());
    g.setColor(Color.GREEN);
    g.drawImage(h.hi, h.hx, h.hy, this);
    g.fillOval(cx, 200, 40, 40);

    bs.show();

}

次に、別のクラスで、ロードされた画像のトリミングを次のように設定しました。

public class TileMap {

//FIELDS
public String livpath;
BufferedImage mappa;
public int imgmapwidth;
public int imgmapheight;


public TileMap (String livpath ){
    this.livpath = livpath;
    BuildBlock();
    try {
        mappa = ImageIO.read (new File (livpath));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
}

public void BuildBlock () {
    for (int x = 0; x < 128; x++)
        { for (int y = 0; y < 128; y++) {
        mappa.getSubimage (0,0,x,y);
        }       
        }
}

その後、メイン クラスから g.drawimage を使用して抽出されたタイルを描画しようとしましたが (明らかに、コンストラクターの要求に従って、画像のパスを使用してインスタンスを作成しました)、画像自体は表示されません。何か案が?ありがとう

4

0 に答える 0