Java实现拼图小游戏(7)—— 计步功能及菜单业务的实现
计步功能
- 一、前言
- 二、计步功能
- 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)—— 计步功能及菜单业务的实现相关推荐
- java对拼图小游戏的简单实现(详解)
使用Java编写拼图小游戏主要包括: 初始化界面 初始化菜单 初始化数据 初始化图片 其他必要功能的实现 这几部分.在进行细分时包括了菜单的搭建,添加图片,打乱图片位置,让图片移动起来,查看完整图片, ...
- Java实现拼图小游戏(5)—— 美化界面(含源码阅读)
美化界面 一.前言 二.添加背景图 1.注意事项 2.创建图片对象 3.创建JLabel的对象(一个用来放图片的容器) 4.调整位置 5.将容器放到界面中 6.优化代码 三.添加边框 1.查看源码 2 ...
- Java基础:拼图小游戏(包含Java代码)
涉及到的知识: 1.图形用户接口GUI(Graphical User Interface)用图形化的方式显示操作界面 两个体系: AWT包和Swing包 2.界面会用到JFrame类 3.界面中的菜单 ...
- Java实现拼图小游戏(2)——菜单搭建(有关Java中的JMenuBar知识点)
菜单搭建 一.前言 二.搭建步骤 1. 创建JMenuBar 2. 创建Jmenu 3. 创建JMenuItem 4. 将JMenuItem放到Jmenu中 5. 将Jmenu放到JMeanuBar中 ...
- Java实现拼图小游戏(6)—— 移动图片(键盘监听实操练习)
移动图片 一.前言 二.步骤 1.让我们的类继承KeyListener接口 2.改写initData方法 3.实现向上移动 4.实现向下移动 5.实现向左移动 6.实现向右移动 7.改写initIma ...
- Java实现拼图小游戏(7)—— 作弊码和判断胜利
作弊码和判断胜利 一.前言 二.作弊码 1.功能 2.步骤 1️⃣设置作弊码 2️⃣判断 3️⃣设置成功的图片顺序 4️⃣加载图片 3.完整代码 三.判断胜利 1.功能 2.步骤 1️⃣定义正确数组 ...
- java实现拼图小游戏(包括打包exe)
事先说明这是在B站上学习java基础知识的时候,写的小游戏,该游戏在B站上的视频上只实现了拼图游戏的主界面,本人在这基础上实现的功能有: 1.登录界面实现: 在原来B站视频的基础上实现了: 验证码功能 ...
- Java(拼图小游戏)
目录 一.主界面分析: 二.逻辑处理 三.文件目录 四.代码 (一)游戏界面 (二)登录界面 (三)注册界面 (四)测试类代码 五.实现效果 该项目是Java基础联系项目,适用于初学者温习知识.本人也 ...
- java智力拼图小游戏
不啰嗦,直接上代码啦! package gyb;import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.ev ...
最新文章
- pytorch系列 -- 9 pytorch nn.init 中实现的初始化函数 uniform, normal, const, Xavier, He initialization...
- 一、Linux Shell基础
- JavaScript网站设计实践(五)编写photos.html页面,实现点击缩略图显示大图的效果...
- webService学习5:Eclipse的TCP/IP工具
- 将检索出来的列按逗号拼接起来
- vue做混合式app_Vue+原生App混合开发手记#1
- 分布式NoSQL数据库的Spring整合实践
- Matlab简单描点绘图
- excel表格打开是乱码怎么办?
- 今年Java面试必问的这些技术面,赶快收藏备战金九银十!
- 最新PYTHON批量下载快手个人主页短视频代码
- 解决nginx下加载eot|otf|ttf|woff|svg等404 错误问题
- 屏幕录制软件哪个好?
- 东航手机值机选座推荐
- 2016 中兴签约经验
- 07_音频录制01_命令行
- 前端工程师年终总结(2019)
- c语言基础知识(知识点较为完整)
- [深度学习]Part1 Python学习进阶Ch23爬虫Spider——【DeepBlue学习笔记】
- 大学生考华为认证HCIP需要做那些准备?
热门文章
- JUnit version 3.8 or later expected
- 华硕h110m主板怎么样_华硕台式机主板怎么样 华硕台式机主板多少钱【详细介绍】...
- 每天5分钟玩转Kubernetes | Cluster IP底层实现
- 【大学物理学】静电场
- python爬虫实例网易云-Python3爬虫实例之网易云音乐爬虫
- 淘宝4位数七段显示器模块 (74HC595)
- 如何将英文文献完整翻译?公式都可以快速完整插入,比淘宝上的机翻要强一百倍!
- yoyo跑_yoyo主持人5岁女儿照片曝光 其老公魏哲浩个人资料简介
- 关于机房环境监控系统基础知识
- 浮动IP地址(Float IP)与 ARP欺骗技术