Java实现拼图小游戏(7)—— 计步功能及菜单业务的实现

简介: 注意由于我们计步功能的步数要在重写方法中用到,所以不能将初始化语句写在方法体内,而是要写在成员位置。在其名字的时候也要做到“见名知意”,所以我们给它起名字为step

一、前言


本文将实Java小游戏中的计步功


二、计步功能


当我们移动一步的时候,左上角就会有一个计步的框,显示已经移动的步数,以便于在和小伙伴PK时可以通过步数的多少来判断胜负


1.步骤


1️⃣初始化步数


注意由于我们计步功能的步数要在重写方法中用到,所以不能将初始化语句写在方法体内,而是要写在成员位置。在其名字的时候也要做到“见名知意”,所以我们给它起名字为step


int step = 0;


注意书写位置


20c3b6f0abcc420e81073f9dfdd791d8.png


2️⃣定义JLable并设置宽高


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


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


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


this.getContentPane().add(stepCount);


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


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


2.测试代码


57c473fe33e643239cd415696ba6172c.jpg


三、菜单业务实现


1.实现重新开始


1️⃣绑定监听


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


public class GameJFrame extends JFrame implements KeyListener, ActionListener


2️⃣清零计步器


step = 0;


3️⃣打乱二维数组


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


151555fb7bac450a926eea666463e322.png


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 );
        }


五、测试代码


重新开始


03b3b895fb76494dab7088954477ad61.png


重新登录


cad0e6ec56134b9f9054b2cd28d5d0c4.png


关闭游戏


3377164dca5541aba0ca5f3b304813be.png


六、结语


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

相关文章
|
9月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
9月前
|
存储 数据可视化 Java
Java Stream API 的强大功能
Java Stream API 是 Java 8 引入的重要特性,它改变了集合数据的处理方式。通过声明式语法,开发者可以更简洁地进行过滤、映射、聚合等操作。Stream API 支持惰性求值和并行处理,提升了代码效率和可读性,是现代 Java 开发不可或缺的工具。
185 0
Java Stream API 的强大功能
|
10月前
|
安全 Java API
Java中的Lambda表达式:简洁与功能的结合
Java中的Lambda表达式:简洁与功能的结合
562 211
|
10月前
|
前端开发 JavaScript Java
Java 项目实战城市公园信息管理系统开发流程与实用功能实现指南
本系统基于Java开发,采用Spring Boot后端框架与Vue.js前端框架,结合MySQL数据库,构建了一个高效的城市公园信息管理系统。系统包含管理员、用户和保洁人员三大模块,涵盖用户管理、园区信息查询、订票预约、服务管理等功能,提升公园管理效率与服务质量。
271 6
|
10月前
|
安全 Java 数据库
Java 项目实战病人挂号系统网站设计开发步骤及核心功能实现指南
本文介绍了基于Java的病人挂号系统网站的技术方案与应用实例,涵盖SSM与Spring Boot框架选型、数据库设计、功能模块划分及安全机制实现。系统支持患者在线注册、登录、挂号与预约,管理员可进行医院信息与排班管理。通过实际案例展示系统开发流程与核心代码实现,为Java Web医疗项目开发提供参考。
438 2
|
10月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据机器学习模型在生物信息学基因功能预测中的优化与应用(223)
本文探讨了Java大数据与机器学习模型在生物信息学中基因功能预测的优化与应用。通过高效的数据处理能力和智能算法,提升基因功能预测的准确性与效率,助力医学与农业发展。
|
10月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
1073 64
|
11月前
|
Java API
深入解析Java API中Object类的功能
了解和合理运用 Object类的这些方法,对于编写可靠和高效的Java应用程序至关重要。它们构成了Java对象行为的基础,影响着对象的创建、识别、表达和并发控制。
203 0
|
11月前
|
消息中间件 监控 Java
借助最新技术构建 Java 邮件发送功能的详细流程与核心要点分享 Java 邮件发送功能
本文介绍了如何使用Spring Boot 3、Jakarta Mail、MailHog及响应式编程技术构建高效的Java邮件发送系统,涵盖环境搭建、异步发送、模板渲染、测试与生产配置,以及性能优化方案,助你实现现代化邮件功能。
753 0
|
11月前
|
算法 安全 Java
java中Collections.shuffle方法的功能说明
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的方法,基于 Fisher-Yates 算法实现,常用于洗牌、抽奖等场景。可选 `Random` 参数支持固定种子以实现可重复的随机顺序。方法直接修改原列表,无返回值。
355 0