【开源】java做游戏之QQ连连看java单机高仿版(算是目前最高仿的了)

QQ连连看JAVA高仿单机版V1.0

前言

为什么说是目前最高仿的呢,因为想做这个的一般是新手,要实现的跟我一样有点难度,至少我在网上没搜到(java版本)。还有就是高手对这个没兴趣,不会做这个玩意儿,哈哈

源码是完全开源的,在文章最下方,相信能搜索到这个的一般都是对java充满热情的新手,希望这个小游戏能给你的java学习带来帮助。

游戏界面

在这里插入图片描述

游戏地图编辑器

【喜欢自己创建地图的小伙伴可以使用地图编辑器编辑自己喜欢的地图玩耍】
在这里插入图片描述
在这里插入图片描述

介绍

小时候只有舅舅家有电脑,所以经常去他家玩QQ连连看,读高中、大学的时候因为对制作游戏感兴趣,制作过很多小游戏,毕业后还参加过某公司的页游开发(已倒闭多年),现在工作好几年了,最近工作任务不多,所以大概花了五天的闲暇时间用java编写较高的还原了QQ连连看的单机版本。

  1. 所有素材都来源于QQ游戏大厅的连连看 ,本项目仅用于java学习交流,完全免费,开源,请勿用作商用。
  2. 目前仅制作完成了单机部分,以后有时间了再试试联网版本。
  3. 道具只做了重列,想要其他的朋友可以自己写下。
  4. 启动游戏的时候因为加载背景音乐,要等几秒,有点慢,懂这一块的朋友可以优化下。
  5. 没有做倒计时,因为单机游戏,没必要设置惩罚,开心就好,想做的朋友可以自己做一下
软件架构

用IDEA创建的简单的java项目

使用说明
  1. 如果要导出jar,要将GameFrame类的第121行左右的代码注释解除【mapPath = exportJarMapDir(mapPath)】,否则会找不到路径。
  2. 本项目编码格式为UTF-8
鸣谢
  1. 腾讯QQ游戏大厅连连看:素材,玩法来源都是这里。
  2. 百度:有问题就找百度。
  3. CSDN:提供了很多JAVA连连看的制作思路和源码。
  4. 哔哩哔哩:从C++连连看视频中学习了代码思路。
  5. 《JAVA游戏编程开发教程》(郑秋生2016版):先看书跟着做了几个小游戏才开始做的本项目,学到了很多。
码云源码地址

https://gitee.com/traveller_luf/linkgame

java连连看代码 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import javax.swing.*; public class Game extends JFrame{ private int num[][]; //实现数组 private JButton gamebutton[][]; //游戏Button组 private Container cont; //内容面板 private JLabel timelabel; //时间标签 private JButton play; //开始游戏按钮 private JButton exit; //退出按钮 private JButton replay; //重新开始按钮 private JButton back; //返回主界面按钮 private JComboBox choice;//游戏等级 private JButton chongle; //游戏按钮重列 private JPanel gamepanel; //游戏按钮面板 private JPanel panel; //开始游戏面板 private int time=0; //时间记录 private Time T; //记时线程 private Thread t=new Thread(T); //记时线程 private int shu=1; //记录获取游戏按钮事件的个数 private int x=0,y=0,a=0,b=0;//按钮的坐标 private JButton button1=null,button2=null;//点击了的按钮 private boolean can;//能否消除 private int lvx,lvy; //游戏等级数组标列数 private int framex,framey; //框架大小 private int again=1;//记录重列次数 public Game(){ itincomponent(); } private void itincomponent(){ //设置面板属性 if(cont!=null) cont.removeAll(); this.setSize(500, 500); this.setLocationRelativeTo(null); //获取内容面板 cont=this.getContentPane(); //开始和退出按钮 panel=new JPanel(); play=new JButton("开始游戏"); choice=new JComboBox(); choice.addItem("低级"); choice.addItem("中级"); choice.addItem("级"); choice.setSelectedItem("低级"); exit=new JButton("退出游戏"); panel.add(choice); panel.add(play); panel.add(exit); cont.add(panel,"South"); exit.addActionListener(new Exit());//结束事件监听 play.addActionListener(new Play());//开始事件监听 this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(EXIT_ON_CLOSE); } ////获得新的面板 private void p(){ //设置面板属性 this.setSize(framex, framey); this.setLocationRelativeTo(null); //获取内容面板 cont=this.getContentPane(); //开始和退出按钮 panel=new JPanel(); exit=new JButton("退出游戏"); replay=new JButton("重新开始"); back=new JButton("返回主界面"); chongle=new JButton("重列"); panel.add(chongle); panel.add(replay); panel.add(exit); panel.add(back); cont.add(panel,"South"); exit.addActionListener(new Exit());//结束事件监听 replay.addActionListener(new Playbutton());//重新开始事件监听 back.addActionListener(new Back());//返回主界面事件监听 chongle.addActionListener(new Chongle());//重列事件监听 //时间面板 timelabel=new JLabel("游戏时间:"+time+"s",JLabel.CENTER); cont.add(timelabel,"North"); //生成游戏操作面板 gamepanel=new JPanel(); gamepanel.setLayout(new GridLayout(lvx,lvy,3,3)); //设置为表格布局 for (int i = 0; i < lvx; i++) { for (int j = 0; j <lvy; j++) { if(gamebutton[i][j].isVisible()){ gamebutton[i][j].setIcon(new ImageIcon(num[i][j]+".jpg")); } gamepanel.add(gamebutton[i][j]); gamebutton[i][j].addActionListener(new Gamebutton()); } } cont.add(gamepanel, "Center"); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(EXIT_ON_CLOSE); }
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值