拼图小游戏———Day5

本文介绍了在Java程序中如何实现查看完整图片、作弊码控制(如一键通关)、计步功能以及菜单业务,包括计数器操作、二维数组排序判断胜利和游戏重置等功能。
摘要由CSDN通过智能技术生成

目录

        八、查看完整图片,作弊码 和判断胜利

查看完整图片

作弊码 (一键通关)

判断胜利

结果展示:

九、计步功能和菜单业务实现;

计步功能

菜单业务实现


涉及知识:Java System.exit() 退出程序

在java 中退出程序,经常会使用System.exit(1) 或 System.exit(0),其中返回的status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等


八、查看完整图片,作弊码 和判断胜利

查看完整图片

1.指定一个键 来实现查看功能 ——” A “

按住A不松开,显示完整图片,使用键盘监听中 ,调用 keyPressed;

(定义一个变量 记录图片加载路径,为后面切换图片提供便利)

 //按下不松时,调用这个方法
    @Override
    public void keyPressed(KeyEvent e) {
        int  code = e.getKeyCode();
        if(code == 65) {
            //把界面所有的图片全部删除
            this.getContentPane().removeAll();
            //加载一张完整图片
            JLabel all = new JLabel(new ImageIcon(path + "all.jpg"));
            all.setBounds(83,134,420,420);
            this.getContentPane().add(all);
            //加载背景图片
            //添加背景图片
            JLabel background = new JLabel(new ImageIcon("..\\puzzllegame\\image\\background.png"));
            background.setBounds(40, 40, 508, 560);
            this.getContentPane().add(background);
            //刷新界面
            this.getContentPane().repaint();


        }
    }

松开A显示随机打乱的图片,在keyReleast方法中添加一个else-if语句

else if (code == 65) {
    initImage();
}

作弊码 (一键通关)

按一下W键,直接胜利,在keyReleast方法中添加一个else-if

else if (code == 87) {
            data = new int[][] {
                    {1,2,3,4},
                    {5,6,7,8},
                    {9,10,11,12},
                    {13,14,15,0},
            };
            initImage();;
        }

判断胜利

判断胜利,也就是判断二维数组中的数字是否按顺序进行排列,如果按照顺序排列,则显示胜利的图片

实现步骤:

1.定义一个正确的二维数组win

2.在加载图片时,先判断一下二维数组中的数字顺序是否与win数组中相同

(创建一个方法)

3.相同则展示胜利的图标,否则不展示

4.胜利后,不再允许图片移动

结果展示:


九、计步功能和菜单业务实现;

计步功能

1.定义一个变量 int step = 0, 每上下左右移动一次step + 1;把计数器自增写在keyReleast方法上下左右移动的if语句中

2.intImage方法中创建一个JLabel对象,设置合适位置,并将其添加在隐藏容器中

结果展示 :

菜单业务实现

菜单功能下的里面的

重新游戏

1.绑定事件(总的操作)

创建选项下面的条目对象(重新游戏 重新登录 关闭游戏)取出来放置方法外;

2.重新打乱二维数组中的数字

3.计步器清零

4.重载图片

注意:计步器清零在重载图片之前

在之前写的打乱二维数组中,只记录了0的位置并没有把他添加到二维数组中所以会造成宠幸游戏后,没有空白快的问题,如:

因此需要把else去掉


重新登录

1.绑定事件    2.关闭当前的游戏界面     3.打开登录界面


关闭游戏

1.绑定事件     2.结束虚拟机,关闭所有界面


公众号

else if (obj == accountItem) {
            System.out.println("公众号");
            //创建一个弹框对象
            JDialog jDialog = new JDialog();
            //创立一个管理图片的容器对象JLabel
            JLabel jLabel = new JLabel(new ImageIcon("image\\屏幕截图 2024-03-19 155928.png"));
            jLabel.setBounds(0,0,240,248);
            //添加到弹框中
            jDialog.getContentPane().add(jLabel);
            //给弹框设置大小
            jDialog.setSize(344,344);
            //让弹框置顶
            jDialog.setAlwaysOnTop(true);
            //让弹框居中
            jDialog.setLocationRelativeTo(null);
            //弹框不关闭则无法操作下面的界面
            jDialog.setModal(true);
            //让弹框显示出来
            jDialog.setVisible(true);

        }

结果展示:

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值