Java开发学习之用Java打造一款对对碰游戏
小职 2021-01-12 来源 :Java进阶学习交流 阅读 846 评论 0

摘要:本文主要向大家介绍了Java开发学习之用Java打造一款对对碰游戏,通过具体的内容向大家展现,希望对大家Java开发的学习有所帮助。

 本文主要向大家介绍了Java开发学习之用Java打造一款对对碰游戏,通过具体的内容向大家展现,希望对大家Java开发的学习有所帮助。

Java开发学习之用Java打造一款对对碰游戏

一、项目背景

 

随着移动互联网技术的快速发展,智能手机、智能平板的兴起和不断的普及,我国移动游戏行业迅速发展,在游戏产业中占据举足轻重的地位。对对碰游戏是一款经典的消除类游戏,玩家只要点击图案来使图案之间互换位置,连成3个或3个以上图案来消除,得到相应的分数。

 

二、项目目标

 

设计一款基于JAVA的游戏,显示64 (8*8 )个动物图片,游戏开始时,进入100s倒数,用户点击相应的动物图片,如果有三个或以上相同,则成功消除,并每个得10分。

 

三、游戏项目设定

 

1.交换:玩家选择两个横排或竖排相邻的动物头像进行位置交换,如果位置交换成功则消去动物头像,否则不能位置交换。

 

2.消去:玩家选择两个横排或竖排相邻的动物头像进行位置交换,互换后如果横排或竖排s上有超过3个相同的动物头像,则消去这几个相同的动物头像,消去动物头像后的空格由上面的动物头像掉下来补齐,每次消去动物头像,玩家可以获得相应的分数。

 

3.连锁:玩家消去动物头像后,上面的动物头像掉下来补齐,如果这时游戏池里有连续相同的3个或3个以上动物头像,则可以消去这些动物头像。消去后的空格由上面的动物头像掉下来补齐,继续触发连锁,直到没有连锁条件为止。

 

四、项目实施

 

使用eclipse软件开发,先上效果图,如下图所示。可以看到在界面上有可以有开始游戏按钮、分数、时间进度条、退出游戏的功能。

 

接下来,小编带大家进行具体的实现,具体的实现步骤如下。

 Java开发学习之用Java打造一款对对碰游戏

 

 

(一)首先实现窗体界面

 

1.代码如下所示

 

public static void main(String[] args) {

// TODO Auto-generated method stub

    DuiDuiPeng  d = new DuiDuiPeng();

    d.setTitle("对对碰游戏");

    d.setSize(700, 550);

    d.setVisible(true);

    d.setResizable(false);

d.setLocationRelativeTo(null);

}

2.使用new关键字创建DuiDuiPeng类

 

setTitle表示设置界面的标题;

 

setSize(宽,高)表示窗体大小;

 

setVisible(true或false)表示窗体是否可见;

 

setResizable(true或false)表示窗体是否可以由用户调整大小;

 

setLocationRelativeTo()表示设置窗口相对于指定组件的位置。

 

效果图如下所示:

 Java开发学习之用Java打造一款对对碰游戏

 

 

(二)添加开始按钮、分数、时间、退出按钮

 

1.创建JFrame实例、JPanel面板,然后把面板添加到JFrame中。

 

2.创建开始按钮(JButton)、分数标签(JLabel)、文本框(JTextField)、进度条(JProgressBar)、退出按钮(JButton)。

 

3.进度条(JProgressBar)是一种以可视化形式显示某些任务进度的组件。进度条可显示此百分比的文本表示形式。

 

4.进度条常用方法:

 

getMaximum() 方法返回进度条最大值;

 

getMinimum() 方法返回进度条最小值 ;

 

getPercentComplete() 返回进度条的完成百分比;

 

getString() 方法返回当前进度的 String 表示形式;

 

getValue() 方式返回进度条的当前 value;

 

setBorderPainted(boolean b) 设置 borderPainted 属性,如果进度条应该绘制其边框,则此属性为 true;

 

setIndeterminate(boolean newValue) 设置进度条的 indeterminate 属性,该属性确定进度条处于确定模式中还 是处于不确定模式中;

 

setMaximum(int a) 设置进度条的最大值为 a;

 

setMinimum(int a) 设置进度条的最小值为 a;

 

setOrientation(int newOrientation) 设置进度条的方向为 newOrientation;

 

setString(String s) 设置进度字符串的值;

 

setStringPainted(boolean b) 设置 stringPainted 属性的值,该属性确定进度条是否应该显示进度字符串;

 

setValue(int a) 设置进度条的当前值为 a;

 

代码如下所示:

 

public class DuiDuiPeng extends JFrame {

private JPanel panel01 = new JPanel();

private JButton btn_start = new JButton("开始游戏");

private JLabel label01 = new JLabel("分数");

private JTextField text_score = new JTextField(10);

private JLabel label02 = new JLabel("时间");

private JProgressBar progress = new JProgressBar();

private JButton btn_exit = new JButton("退出");

(三)添加8*8动物矩阵

 

1.准备好7种动物图片;

 

效果图如下图:

 Java开发学习之用Java打造一款对对碰游戏

 

 

2.开始添加8*8动物矩阵JPanel、JButton、ImageIcon等,添加DuiDuiPeng类的成员变量。

 

代码如下所示:

 

private JPanel panel02 = new JPanel();

private JButton button[][] = new JButton[8][8];

private int animal[][] = new int[8][8];//0猫 1牛 2鸡 3狐狸 4青蛙 5猴子 6熊猫

private ImageIcon icon[] = new ImageIcon[]{

new ImageIcon("image//cat.png"),

new ImageIcon("image//cattle.png"),

new ImageIcon("image//chicken.png"),

new ImageIcon("image//fox.png"),

new ImageIcon("image//frog.png"),

new ImageIcon("image//monkey.png"),

new ImageIcon("image//panda.png"),

 

};//7种动物的图片

(四)显示开始按钮、分数标签、文本框、进度条、退出按钮

 

text_score.setText("0");

text_score.setEditable(false);

progress.setMinimum(0);//进度值最小为0

progress.setMaximum(100);//进度值最大为100

progress.setStringPainted(true);//设置 stringPainted 属性的值,该属性确定进度条是否应该显示进度字符串

 

panel01.add(btn_start);

panel01.add(label01);

panel01.add(text_score);

panel01.add(label02);

panel01.add(progress);

panel01.add(btn_exit);

this.setLayout(new BorderLayout());

this.add(panel01,BorderLayout.NORTH);

效果如下图所示

 Java开发学习之用Java打造一款对对碰游戏

 

 

(五)显示8X8动物矩阵,完成界面设计

 

可以看到游戏池种第一个和第二表格的颜色不一样,第三又和第一个颜色是一样的,我们可以给一个判断条件,如果表格为奇数的颜色是橙色,如果表格为偶数的颜色是黄色,最后我们设置它的背景颜色为橙色。

 

效果图如下所示

 Java开发学习之用Java打造一款对对碰游戏

 

 

代码如下图所示

 

panel02.setLayout(new GridLayout(8,8,2,2));

for(int i=0;i<8;i++){//行

        for(int j=0;j<8;j++){//列

            int temp = (int)(Math.random()*7);//0-6

            button[i][j] = new JButton(icon[temp]);

            if((i+j)%2==0){

                button[i][j].setBackground(new Color(255,222,173));

            }else{

                button[i][j].setBackground(new Color(255,246,143));

            }

            animal[i][j]=temp;

            panel02.add(button[i][j]);

            button[i][j].setEnabled(false);

 

            button[i][j].addActionListener(my);

        }

}

this.add(panel02,BorderLayout.CENTER);

setOpaque设置控件是否透明的。true表示不透明,false表示透明。

 

panel01.setOpaque(false);

panel02.setOpaque(false);

this.getContentPane().setBackground(Color.orange);

以上的内容主要完成游戏的界面设计,实现的功能请看第二篇《Java实现对对碰游戏(下篇)》。

 

五、总结

 

1.本文主要介绍了JLabel、JButton、JPanel、ImageIcon、JTextField、JProgressBar等组件的基本使用,介绍了进度条(JProgressBar)常用的方法。

 

2.使用二维数组实现88动物矩阵,88动物矩阵第一个单元格和第二个单元格的颜色不一样,第三个单元格和第一个单元格颜色一样。用奇数单元格设置为橙色,偶数单元格设置为黄色。

 

3.本文是一个小游戏案例,代码相对来说并不复杂,希望可以帮助到你。



关注“职坐标在线”(Zhizuobiao_Online)公众号,免费获取学习视频资料、技术就业咨询

Java开发学习之用Java打造一款对对碰游戏

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程