2017-06-03 14 views
-1

私は基本的なレンガのゲームを作成しています。私の質問は、どのようにして行と列が互いに隣り合って並んでいるようにレンガを作成するのかということです。私はこれに似た質問がたくさんあることを知っていますが、私は新しく、それをどうやって理解することができず、誰かが私にそれをどうやって学ぶことができるのかを見せてくれることを願っています。ありがとうございました。行と列を形成するオブジェクトを作成する方法

Game.java

public class Game extends Canvas implements Runnable{ 
    private Bricks bricks; 

    public void init(){ 
    bricks = new Bricks(200, 200, this); 
    } 

    public void run(){ 
    intit(); 
    //Game Loop 

} 

public void tick(){ 
    bricks.tick(); 
} 

public void render() { 
    BufferStrategy bs = this.getBufferStrategy(); 
     if(bs == null){ 
      createBufferStrategy(3); 
      return; 
     } 

     Graphics g = bs.getDrawGraphics(); 
     g.drawImage(background, 0, 0, getWidth(), getHeight(), this); 

     bricks.render(g); 

     g.dispose(); 
     bs.show(); 
} 


} 

Bricks.java

public class Bricks { 

private double x, y; 

Game game; 
private Image BrickImg; 


public Bricks(double x, double y, Game game) { 
    this.x = x; 
    this.y = y; 
    this.game = game; 

    ImageIcon bricksImg = new ImageIcon("res\\bricks.png"); 
    BrickImg = bricksImg.getImage(); 
} 

public void tick() { 

} 

public void render(Graphics g) { 
    g.drawImage(BrickImg, (int)x, (int)y, null); 
} 

}

+0

はSOへようこそ。読みやすくするためにコードをインデントしてください。 1つのオプションは、各レンガをラベルで表すことです。 – c0der

答えて

1

1つのオプションはJLabelによって各ブリックを表すことです。次に例を示します。

public class Game extends JPanel{ 

    private final static int ROWS = 10; 
    private final static int COLS = 10; 
    private final static int GAP = 2; 

    Game(){ 

     setLayout(new GridLayout(ROWS, COLS,GAP, GAP)); 
     for (int row = 0 ; row < ROWS; row++) { 
      for (int col = 0; col < COLS; col++) { 
       add(new Brick()); 
      } 

     } 
    } 

    public static void main(String[] args) { 

     JFrame f = new JFrame(); 
     f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     f.add(new Game()); 
     f.pack(); 
     f.setVisible(true); 
    } 

} 

class Brick extends JLabel{ 

    Brick() { 

     Icon bricksImg = new ImageIcon("res\\bricks.png"); 
     setIcon(bricksImg); 
    } 
} 

enter image description here

関連する問題