计步功能
一、前言二、计步功能1.步骤1️⃣初始化步数2️⃣定义JLable并设置宽高3️⃣将JLable界面放到主界面中4️⃣重写方法中添加计步功能2.测试代码三、菜单业务实现1.实现重新开始1️⃣绑定监听2️⃣清零计步器3️⃣打乱二维数组4️⃣加载图片2.实现关闭游戏3.实现关于我们4.在initJFrameBar()中绑定监听四、完整代码五、测试代码六、结语一、前言
本文将实现Java小游戏中的计步功能
二、计步功能
当我们移动一步的时候,左上角就会有一个计步的框,显示已经移动的步数,以便于在和小伙伴PK时可以通过步数的多少来判断胜负
1.步骤
1️⃣初始化步数
注意由于我们计步功能的步数要在重写方法中用到,所以不能将初始化语句写在方法体内,而是要写在成员位置。在其名字的时候也要做到“见名知意”,所以我们给它起名字为step
int step = 0;
注意书写位置
2️⃣定义JLable并设置宽高
这里小伙伴可以自行调整,不一定要按照我的参数来写
JLabel stepCount = new JLabel("当前步数:" + step);stepCount.setBounds(50,10,300,60);
3️⃣将JLable界面放到主界面中
this.getContentPane().add(stepCount);
4️⃣重写方法中添加计步功能
在重写方法中,当我们上下左右移图片后,步数都要加一,即count++
2.测试代码
三、菜单业务实现
1.实现重新开始
1️⃣绑定监听
由于这里我们只需要单击鼠标即可,所以绑定动作监听ActionListener
public class GameJFrame extends JFrame implements KeyListener, ActionListener
2️⃣清零计步器
step = 0;
3️⃣打乱二维数组
这里我们需要把else去掉,否则会出现点击按钮后没有空白图片的情况
4️⃣加载图片
initImage();
2.实现关闭游戏
关闭游戏绑定事件并结束虚拟机,所以此代码较简单
System.exit(0);
3.实现关于我们
创建弹窗对象创建管理图片的容器对象设置位置和宽高将图片加载到弹框中设置弹框大小设置弹框位置设置弹框可视化System.out.println("公众号");//创建弹窗对象JDialog jd = new JDialog();//创建管理图片的容器对象JLableJLabel jLabel = new JLabel(new ImageIcon("F:\\IDEA\\PuzzleGame\\showMe.jpg"));//设置位置和宽高jLabel.setBounds(0,0,430,430);//把图片加到弹框当中jd.getContentPane().add(jLabel);//设置弹框大小jd.setSize(450,450);//让弹框置顶jd.setAlwaysOnTop(true);//让弹框居中jd.setLocationRelativeTo(null);//让弹框显示出来jd.setVisible(true );
4.在initJFrameBar()中绑定监听
//给条目绑定监听restartItem.addActionListener(this);reloginItem.addActionListener(this);closeItem.addActionListener(this);accountItem.addActionListener(this);
四、完整代码
由于我们要实现的功能都是在动作监听的重写方法中,所以我们要判断要实现的是哪个功能,再根据功能去执行相应代码,这里就运用到e.getSource();来判断我们具体要实现的功能是什么
@Overridepublic void actionPerformed(ActionEvent e) {Object obj = e.getSource();if(obj == restartItem ){System.out.println("重新开始");step = 0;initData();initImage();}else if(obj == reloginItem){System.out.println("重新登录");this.setVisible(false);new LoginJFrame();}else if(obj == closeItem ){System.out.println("关闭游戏");System.exit(0);}else if(obj == accountItem ){System.out.println("公众号");//创建弹窗对象JDialog jd = new JDialog();//创建管理图片的容器对象JLableJLabel jLabel = new JLabel(new ImageIcon("F:\\IDEA\\PuzzleGame\\showMe.jpg"));//设置位置和宽高jLabel.setBounds(0,0,430,430);//把图片加到弹框当中jd.getContentPane().add(jLabel);//设置弹框大小jd.setSize(450,450);//让弹框置顶jd.setAlwaysOnTop(true);//让弹框居中jd.setLocationRelativeTo(null);//让弹框显示出来jd.setVisible(true );}
五、测试代码
重新开始
重新登录
关闭游戏
公众号
这里码掉是防止过不了审核…因为是博主本人的公众号
六、结语
本文中还有登录页面和打包成exe文件未实现,接下来会一一实现的