计步功能

  • 一、前言
  • 二、计步功能
    • 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文件未实现,接下来会一一实现的

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

  1. java对拼图小游戏的简单实现(详解)

    使用Java编写拼图小游戏主要包括: 初始化界面 初始化菜单 初始化数据 初始化图片 其他必要功能的实现 这几部分.在进行细分时包括了菜单的搭建,添加图片,打乱图片位置,让图片移动起来,查看完整图片, ...

  2. Java实现拼图小游戏(5)—— 美化界面(含源码阅读)

    美化界面 一.前言 二.添加背景图 1.注意事项 2.创建图片对象 3.创建JLabel的对象(一个用来放图片的容器) 4.调整位置 5.将容器放到界面中 6.优化代码 三.添加边框 1.查看源码 2 ...

  3. Java基础:拼图小游戏(包含Java代码)

    涉及到的知识: 1.图形用户接口GUI(Graphical User Interface)用图形化的方式显示操作界面 两个体系: AWT包和Swing包 2.界面会用到JFrame类 3.界面中的菜单 ...

  4. Java实现拼图小游戏(2)——菜单搭建(有关Java中的JMenuBar知识点)

    菜单搭建 一.前言 二.搭建步骤 1. 创建JMenuBar 2. 创建Jmenu 3. 创建JMenuItem 4. 将JMenuItem放到Jmenu中 5. 将Jmenu放到JMeanuBar中 ...

  5. Java实现拼图小游戏(6)—— 移动图片(键盘监听实操练习)

    移动图片 一.前言 二.步骤 1.让我们的类继承KeyListener接口 2.改写initData方法 3.实现向上移动 4.实现向下移动 5.实现向左移动 6.实现向右移动 7.改写initIma ...

  6. Java实现拼图小游戏(7)—— 作弊码和判断胜利

    作弊码和判断胜利 一.前言 二.作弊码 1.功能 2.步骤 1️⃣设置作弊码 2️⃣判断 3️⃣设置成功的图片顺序 4️⃣加载图片 3.完整代码 三.判断胜利 1.功能 2.步骤 1️⃣定义正确数组 ...

  7. java实现拼图小游戏(包括打包exe)

    事先说明这是在B站上学习java基础知识的时候,写的小游戏,该游戏在B站上的视频上只实现了拼图游戏的主界面,本人在这基础上实现的功能有: 1.登录界面实现: 在原来B站视频的基础上实现了: 验证码功能 ...

  8. Java(拼图小游戏)

    目录 一.主界面分析: 二.逻辑处理 三.文件目录 四.代码 (一)游戏界面 (二)登录界面 (三)注册界面 (四)测试类代码 五.实现效果 该项目是Java基础联系项目,适用于初学者温习知识.本人也 ...

  9. java智力拼图小游戏

    不啰嗦,直接上代码啦! package gyb;import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.ev ...

最新文章

  1. pytorch系列 -- 9 pytorch nn.init 中实现的初始化函数 uniform, normal, const, Xavier, He initialization...
  2. 一、Linux Shell基础
  3. JavaScript网站设计实践(五)编写photos.html页面,实现点击缩略图显示大图的效果...
  4. webService学习5:Eclipse的TCP/IP工具
  5. 将检索出来的列按逗号拼接起来
  6. vue做混合式app_Vue+原生App混合开发手记#1
  7. 分布式NoSQL数据库的Spring整合实践
  8. Matlab简单描点绘图
  9. excel表格打开是乱码怎么办?
  10. 今年Java面试必问的这些技术面,赶快收藏备战金九银十!
  11. 最新PYTHON批量下载快手个人主页短视频代码
  12. 解决nginx下加载eot|otf|ttf|woff|svg等404 错误问题
  13. 屏幕录制软件哪个好?
  14. 东航手机值机选座推荐
  15. 2016 中兴签约经验
  16. 07_音频录制01_命令行
  17. 前端工程师年终总结(2019)
  18. c语言基础知识(知识点较为完整)
  19. [深度学习]Part1 Python学习进阶Ch23爬虫Spider——【DeepBlue学习笔记】
  20. 大学生考华为认证HCIP需要做那些准备?

热门文章

  1. JUnit version 3.8 or later expected
  2. 华硕h110m主板怎么样_华硕台式机主板怎么样 华硕台式机主板多少钱【详细介绍】...
  3. 每天5分钟玩转Kubernetes | Cluster IP底层实现
  4. 【大学物理学】静电场
  5. python爬虫实例网易云-Python3爬虫实例之网易云音乐爬虫
  6. 淘宝4位数七段显示器模块 (74HC595)
  7. 如何将英文文献完整翻译?公式都可以快速完整插入,比淘宝上的机翻要强一百倍!
  8. yoyo跑_yoyo主持人5岁女儿照片曝光 其老公魏哲浩个人资料简介
  9. 关于机房环境监控系统基础知识
  10. 浮动IP地址(Float IP)与 ARP欺骗技术