拼图游戏图片的分割与移动

 图片分割 

public Image[] splitImage(String file, int rows, int cols) 

{   

Image t = new ImageIcon(file).getImage();   

int w = t.getWidth(this) / cols;   

int h = t.getHeight(this) / rows;   

return splitImage(t, rows, cols, w, h);   

}    

public Image[] splitImage(String file, int rows, int cols, int w, int h) 

{   

Image t = new ImageIcon(file).getImage();   

return splitImage(t, rows, cols, w, h);   

}    

public Image[] splitImage(Image t, int rows, int cols, int w, int h) 

{    

Image[] result = new Image[rows * cols]; 

   try 

{    

for (int i = 0; i < result.length; i++) 

{     

result[i] = createImage(w, h);     

Graphics g = result[i].getGraphics();     

g.translate((-i % cols) * w, (-i / cols) * h);     

g.drawImage(t, 0, 0, w * cols, rows * h, 0, 0,         

t.getWidth(this), t.getHeight(this), this);      

 }    

} catch (Exception e) 

{   

}    

return result;   

}  

 } 

 图片移动

向上移动          

if(x1>0&&btn[x1-1][y1].isVisible()&&btn[x1-1][y1].getIcon()==null)     

{      

btn[x1-1][y1].setIcon(btn[x1][y1].getIcon());//获取当前图标给上一个控件为图标       

btn[x1][y1].setIcon(null);//当前图标设置为空      

step++;

 

}               

向下移动      

if(x1

{      

btn[x1+1][y1].setIcon(btn[x1][y1].getIcon());//获取当前图标给下一个控件为图标     

 btn[x1][y1].setIcon(null);//当前图标设置为空     

 step++;

 }            

向左移动      

if(y1>0&&btn[x1][y1-1].isVisible()&&btn[x1][y1-1].getIcon()==null)     

{          

btn[x1][y1-1].setIcon(btn[x1][y1].getIcon());//获取当前图标给左一个控件为图标       

btn[x1][y1].setIcon(null);//当前图标设置为空      

step++;

 }               

向右移动 

if(y1

{      

btn[x1][y1+1].setIcon(btn[x1][y1].getIcon());//获取当前图标给右一个控件为图标      

btn[x1][y1].setIcon(null);//当前图标设置为空    

step++;

}           

btn[x1][y1].setBackground(Color.white); 


你可能感兴趣的:(java)