welcome: please sign in
location: "ピースを動かす"の差分
2と3のリビジョン間の差分
2009-12-04 06:15:29時点のリビジョン2
サイズ: 618
編集者: masahiko
コメント:
2009-12-07 01:09:19時点のリビジョン3
サイズ: 1068
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 4: 行 4:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Game14 extends JPanel implements MouseListener
{
 int haba;
 int yoko, tate;
 String fname;
 Image img;
 int[][] ban;
 int spx, spy;
 
 Game14()
 {
  addMouseListener(this);
 }
行 6: 行 23:
  int ix, iy, dx, dy;   int x, y, dx, dy;
行 8: 行 25:
  ix = e.getX() / pSize;
  iy = e.getY() / pSize;
  if(ix < 0 || ix >= nx || iy < 0 || iy >= ny) return;
  if(ix == spx && iy != spy)
  {
   dx = 0;
   dy = (iy < spy) ? -1 : 1;
  }
  else if(iy == spy && ix != spx)
  {
   dy = 0;
   dx = (ix < spx) ? -1 : 1;
  }
  else
  x = e.getX() / haba;
  y = e.getY() / haba;
  dx = (x<spx) ? -1 : (x>spx) ? 1 : 0;
  dy = (y<spy) ? -1 : (y>spy) ? 1 : 0;
// if(x < spx)
// dx = -1;
// else if(x > spx)
// dx = 1;
// else
// dx = 0;
// if(y < spy)
// dy = -1;
// else if(y > spy)
// dy = 1;
// else
// dy = 0;
  if(dx != 0 && dy != 0)
行 23: 行 43:
  do   while (x != spx || y != spy)
行 28: 行 48:
  } while (spx != ix || spy != iy);
  ban[spx][spy] = nx*ny-1; // はずしたピース
  };
行 32: 行 51:
   public void mouseEntered(MouseEvent e) { }
 public void mouseExited(MouseEvent e) { }
 public void mouseReleased(MouseEvent e) { }
 public void mouseClicked(MouseEvent e) { }

ピースを動かす

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Game14 extends JPanel implements MouseListener
{
        int haba;
        int yoko, tate;
        String fname;
        Image img;
        int[][] ban;
        int spx, spy;
        
        Game14()
        {
                addMouseListener(this);
        }
        public void mousePressed(MouseEvent e)
        {
                int x, y, dx, dy;

                x = e.getX() / haba;
                y = e.getY() / haba;
                dx = (x<spx) ? -1 : (x>spx) ? 1 : 0;
                dy = (y<spy) ? -1 : (y>spy) ? 1 : 0;
//              if(x < spx)
//                      dx = -1;
//              else if(x > spx)
//                      dx = 1;
//              else
//                      dx = 0;
//              if(y < spy)
//                      dy = -1;
//              else if(y > spy)
//                      dy = 1;
//              else
//                      dy = 0;
                if(dx != 0 && dy != 0)
                        return;
                while (x != spx || y != spy)
                {
                        ban[spx][spy] = ban[spx+dx][spy+dy];
                        spx = spx + dx;
                        spy = spy + dy;
                };
                repaint();
        }
        
        public void mouseEntered(MouseEvent e) { }
        public void mouseExited(MouseEvent e) { }
        public void mouseReleased(MouseEvent e) { }
        public void mouseClicked(MouseEvent e) { }      

ピースを動かす (最終更新日時 2012-01-12 07:09:21 更新者 masahiko)