来自:卓657 > 馆藏分类
配色: 字号:
java推箱子代码
2014-04-18 | 阅:  转:  |  分享 
  
第一个Java文件:



importjava.awt.Color;

importjava.awt.HeadlessException;



importjavax.swing.ImageIcon;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JPanel;



publicclassGameFrameextendsJFrame{



JPanelzhuobu=newJPanel();

//工人

JLabelworker=null;

//箱子

JLabelbox=null;

//目的地

JLabelgoal=null;

JLabel[]walls=null;



//设置图片大小

intimgSize=48;



publicvoidsetImgSize(intimgSize){

this.imgSize=imgSize;

}



publicGameFrame(Stringtitle)throwsHeadlessException{

super(title);

//构造方法中调用本类的其它方法

this.initContentPane();





}



/

设置内容面板

/

voidinitContentPane(){

zhuobu.setBackground(Color.red);

zhuobu.setLayout(null);

//调用父类的属性和方法

super.setContentPane(zhuobu);



}



/

把某个图片以组件的方式加入窗体

@paramimgPath图片路径

@paramxx

@paramyy

@paramwidth宽度

@paramheight高度

@return添加完的组件

/

voidaddComponent(inttag,StringimgPath,intx,inty){

ImageIconimg=newImageIcon(imgPath);

//创建JLabel并把ImageIcon通过构造方法传参传入

//把食物放到盘子里

JLabelcomponet=newJLabel(img);

//设置盘子在桌布上的位置和大小

componet.setBounds(x,y,imgSize,imgSize);

//把盘子放到桌布上

zhuobu.add(componet);

switch(tag){

case1:

box=componet;

break;

case2:

goal=componet;

break;

case3:

worker=componet;

break;

}



}



voidaddWall(StringimgPath,int[][]loactions){

ImageIconwallImg=newImageIcon(imgPath);

walls=newJLabel[66+loactions.length];

for(inti=0;i
//创建没每一个围墙,他们使用的是同一个图片

walls[i]=newJLabel(wallImg);

}

for(inti=0;i
//创建没每一个围墙,他们使用的是同一个图片

walls[i]=newJLabel(wallImg);

}

intindex=0;

/分别设置各个图片位置/

for(inti=0;i<14;i++){

//左边墙

walls[index].setBounds(0,iimgSize,imgSize,imgSize);

zhuobu.add(walls[index]);

index++;

//右边墙

walls[index].setBounds(20imgSize,iimgSize,imgSize,imgSize);

zhuobu.add(walls[index]);

index++;

}

for(inti=0;i<19;i++){

//上边墙

walls[index].setBounds((i+1)imgSize,0,imgSize,imgSize);

zhuobu.add(walls[index]);

index++;

//下边墙

walls[index].setBounds((i+1)imgSize,13imgSize,imgSize,imgSize);

zhuobu.add(walls[index]);

index++;

}

//添加中间障碍耦合解耦

for(inti=0;i


walls[index].setBounds(loactions[i][0]imgSize,loactions[i][1]imgSize,imgSize,imgSize);

zhuobu.add(walls[index]);

index++;

}

}

}

第二个Java文件:



publicclassRun{

publicstaticvoidmain(String[]args){

GameFramegameFrame=newGameFrame("推箱子…");

//设置大小

gameFrame.setBounds(100,50,2148+5,1448+25);

//窗体大小不可变

gameFrame.setResizable(false);

gameFrame.setImgSize(48);

gameFrame.addComponent(3,"workerUp.png",400,100);

gameFrame.addComponent(1,"box.png",160,60);

gameFrame.addComponent(2,"goal.png",80,520);

int[][]wallLocations={

{4,5},{5,5},{6,5},{7,5},

{8,5},{9,5},{10,5},{6,8},

{7,8},

{8,8},

{9,8},

{10,8},

{11,5}

};

gameFrame.addWall("wall.png",wallLocations);



gameFrame.setVisible(true);





}

}













































献花(0)
+1
(本文系卓657首藏)