计步功能

  • 一、前言
  • 二、计步功能
  • 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;

注意书写位置

java拼图游戏ppt Java拼图游戏报告_intellij-idea

2️⃣定义JLable并设置宽高

这里小伙伴可以自行调整,不一定要按照我的参数来写

JLabel stepCount = new JLabel("当前步数:" + step);
stepCount.setBounds(50,10,300,60);

3️⃣将JLable界面放到主界面中

this.getContentPane().add(stepCount);

4️⃣重写方法中添加计步功能

在重写方法中,当我们上下左右移图片后,步数都要加一,即 count++

2.测试代码

java拼图游戏ppt Java拼图游戏报告_System_02

三、菜单业务实现

1.实现重新开始

1️⃣绑定监听

由于这里我们只需要单击鼠标即可,所以绑定动作监听ActionListener

public class GameJFrame extends JFrame implements KeyListener, ActionListener

2️⃣清零计步器

step = 0;

3️⃣打乱二维数组

这里我们需要把else去掉,否则会出现点击按钮后没有空白图片的情况

java拼图游戏ppt Java拼图游戏报告_java_03

4️⃣加载图片

initImage();

2.实现关闭游戏

关闭游戏绑定事件并结束虚拟机,所以此代码较简单

System.exit(0);

3.实现关于我们

  • 创建弹窗对象
  • 创建管理图片的容器对象
  • 设置位置和宽高
  • 将图片加载到弹框中
  • 设置弹框大小
  • 设置弹框位置
  • 设置弹框可视化
System.out.println("公众号");
            //创建弹窗对象
            JDialog jd = new JDialog();
            //创建管理图片的容器对象JLable
            JLabel 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();来判断我们具体要实现的功能是什么

@Override
    public 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();
            //创建管理图片的容器对象JLable
            JLabel 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 );
        }

五、测试代码

重新开始

java拼图游戏ppt Java拼图游戏报告_intellij-idea_04


重新登录

java拼图游戏ppt Java拼图游戏报告_java_05


关闭游戏

java拼图游戏ppt Java拼图游戏报告_jvm_06


六、结语

本文中还有登录页面和打包成exe文件未实现,接下来会一一实现的