welcome: please sign in
location: "盤の表示"の差分
20と21のリビジョン間の差分
2012-01-11 06:14:10時点のリビジョン20
サイズ: 2026
編集者: masahiko
コメント:
2012-01-11 06:17:16時点のリビジョン21
サイズ: 2102
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 9: 行 9:
ban[][]の要素の値から sx, sy の値を求め
これを使って表示を行えばよい。
ban[][]の要素の値から sx, sy の値を求めることができる。

これを使って表示を行なうことを、
縦横必要なだけ繰り替
ばよい。

盤の表示

配列 ban の内容にしたがって画像を指定の位置に表示するプログラムを作ります。

画像を表示する(3)では、次の値を使って表示しました。

  • setumei1c.png

ban[][]の要素の値から sx, sy の値を求めることができる。

これを使って表示を行なうことを、 縦横必要なだけ繰り替えせばよい。


プログラム

  •    1 import javax.swing.*;
       2 import java.awt.*;
       3 import java.awt.event.*;
       4 
       5 public class Game5 extends JPanel implements MouseListener
       6 {
       7         Image img;
       8         int cx, cy;
       9         int[][] ban;
      10         
      11         Game5()
      12         {
      13                 ImageIcon ii = new ImageIcon("game0.png");
      14                 img = ii.getImage();
      15                 addMouseListener(this);
      16                 ban = new int[4][4];
      17                 shokika();
      18         }
      19 
      20         void shokika()
      21         {
      22                 盤の表現の演習
      23         }
      24         
      25         public void paintComponent(Graphics g)
      26         {
      27                 int w, h, ax, ay, sx, sy, x, y;
      28                 w = 100;
      29                 h = 100;
      30                 for (x = 0; x < 4; x++)
      31                         for (y = 0; y < 4; y++)
      32                         {
      33                                 ax = ? ;
      34                                 ay = ? ;
      35                                 sx = ? ;
      36                                 sy = ? ;
      37                                 g.drawImage(img, 画像を表示する(3)の演習, this);
      38                         }
      39                 g.setColor(Color.blue);
      40                 g.fillRect(cx*100, cy*100, 100, 100);
      41         }
      42         
      43         public void mousePressed(MouseEvent e)
      44         {
      45                 int x, y;
      46                 x = e.getX();
      47                 y = e.getY();
      48                 cx = クリック時の処理(2)の演習;
      49                 cy = クリック時の処理(2)の演習;
      50                 repaint();
      51         }
      52         public void mouseEntered(MouseEvent e) { }
      53         public void mouseExited(MouseEvent e) { }
      54         public void mouseReleased(MouseEvent e) { }
      55         public void mouseClicked(MouseEvent e) { }
      56         
      57         public static void main(String[] args)
      58         {
      59                 JFrame f;
      60                 
      61                 f = new JFrame();
      62                 f.setVisible(true);
      63                 f.setTitle("15Game");
      64                 f.setSize(420, 450);
      65                 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      66                 f.add( new Game5() );
      67         }
      68 }
    


演習

4箇所ある ? に計算式を入れプログラムを完成させなさい。

…の演習とあるところには、これまでの演習の解答が入ります。

盤の表示 (最終更新日時 2012-03-27 04:50:03 更新者 masahiko)