游戏资源放在这里:
链接:百度网盘 请输入提取码 提取码:9290
在这个小游戏里,我们不仅用到了JFrame类,还用到了继承的方法。所以在这里我们用IDEA实现,在一个包下创建一个华容道类,用来进行小游戏的逻辑实现和判断,和一个华容道测试类,用来调用华容道类运行游戏。
游戏界面是这样的:
游戏成功是这样的:显示游戏胜利并且按钮不能再点击。
接下来我们就进行代码的编写:
1、首先我们在测试类里调用华容道类,但此时什么也没有,因为我们还没有在华容道类里写东西,这里就写这一行即可。
public class HuaRongDaoDemo {
public static void main(String[] args) {
HuaRongDao hrd = new HuaRongDao();
}
}
2、接下来我们在华容道类里写逻辑
这里需要注意,我们为了继承自JFrame,所以在一开始要进行继承:
public class HuaRongDao extends JFrame {}
当然也可以选择不继承,这样的话就需要在2.2所示一开始定义JFrame jf = new JFrame;然后把下边的this替换成jf就好了。
2.1首先写一个构造方法,public HuaRongDao(){},在这个方法里调用后面写的其它游戏逻辑的方法。
构造方法就是就是类构造对象时调用的方法,它的作用是:(1)构造出来一个类的实例 (2)对构造出来个一个类的实例(对象)初始化
2.2用JFrame类来写窗体,在initFrame()方法里进行窗口的初始化。
//显示窗体方法
public void initFrame() {
this.setTitle("数字华容道");
this.setSize(960, 565);
this.setDefaultCloseOperation(3);
this.setLayout(null);
this.setLocationRelativeTo(null);
this.setAlwaysOnTop(true);
}
记得把这个方法放在构造方法里,并且在构造方法的最后加上一句this.setVisible(true);
这样窗体就显示出来了。
2.3窗体上的组件有背景、游戏面板、按钮、标题,所以我们用一个方法来打包,最后在构造方法里调用就好了
//组件设置
public void paintView() {
//标题设置
JLabel title = new JLabel(new ImageIcon("D:\\Java Project\\Test Pro\\Test Projext\\Images\\title.png"));
title.setBounds(354, 27, 232, 57);
this.add(title);
//游戏面板设置
jPanel = new JPanel();
jPanel.setBounds(150, 114, 360, 360);
jPanel.setLayout(null);
//把图片放进去
for (int i = 0; i < datas.length; i++) {
for (int j = 0; j < datas[i].length; j++) {
JLabel picture = new JLabel(new ImageIcon("D:\\Java Project\\Test Pro\\Test Projext\\Images\\" + datas[i][j] + ".png"));
picture.setBounds(90 * j, 90 * i, 90, 90);
jPanel.add(picture);
}
}
this.add(jPanel);
//上下左右按钮、求助、重置按钮
up = new JButton(new ImageIcon("D:\\Java Project\\Test Pro\\Test Projext\\Images\\shang.png"));
up.setBounds(732, 165, 57, 57);
this.add(up);
down = new JButton(new ImageIcon("D:\\Java Project\\Test Pro\\Test Projext\\Images\\xia.png"));
down.setBounds(732, 247, 57, 57);
this.add(down);
left = new JButton(new ImageIcon("D:\\Java Project\\Test Pro\\Test Projext\\Images\\zuo.png"));
left.setBounds(650, 247, 57, 57);
this.add(left);
right = new JButton(new ImageIcon("D:\\Java Project\\Test Pro\\Test Projext\\Images\\you.png"));
right.setBounds(813, 247, 57, 57);
this.add(right);
help = new JButton(new ImageIcon("D:\\Java Project\\Test Pro\\Test Projext\\Images\\qiuzhu.png"));
help.setBounds(626, 344, 108, 45);
this.add(help);
reset = new JButton(new ImageIcon("D:\\Java Project\\Test Pro\\Test Projext\\Images\\chongzhi.png"));
reset.setBounds(786, 344, 108, 45);
this.add(reset);
//背景设置
JLabel background = new JLabel(new ImageIcon("D:\\Java Project\\Test Pro\\Test Projext\\Images\\background.png"));
background.setBounds(0, 0, 960, 530);
this.add(background);
}
这里需要注意,还要在IDEA里的项目下新建一个文件夹,把素材都放进去,这里面的路径就是素材的路径。
只需要右键素材,点击Copy Path/Reference,点击第一个Absolute Path也就是绝对路径,就