----------- 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 ------------------------------------------------------------
下面是游戏的几个效果展示:
我玩儿的菜哈,各位见谅~~
[](()(2)游戏设置
为何颜色不一样呢?因为是可以自定义游戏中方块的颜色、游戏难度、游戏背景音乐、游戏中方块落下的速度、方块是否自动上升、游戏背景图片…:
其余界面这里不再展示~~
[](()(二)源代码实例
=======================================================================
Version.java
package view;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
public class Version extends JDialog{
JLabel jl1=new JLabel("CSDN博客 ");
JLabel jl2=new JLabel(“作者: 追光者♂”);
JLabel jl3=new JLabel(“俄罗斯方块8.0”);
JPanel jp=new JPanel();
public Version(JFrame j,String s,boolean b){
super(j,s,b);
this.setBounds(400, 120, 200, 200);
this.setVisible(true);
this.setResizable(false);
jp.setLayout(new GridLayout(3, 1));
jp.add(jl1);
jp.add(jl2);
jp.add(jl3);
this.add(jp);
}
}
GameCanvas.java
package view;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
import model.Block;
import model.Box;
public class GameCanvas extends JPanel {
private Color backColor = Color.GRAY, frontColor = Color.orange;
private int rows, cols, score = 0, scoreForLevelUpdate = 0;
private Box[][] boxes;
private int boxWidth=25, boxHeight=25;
private boolean gameOver=false;
public boolean pau=false;
/**
画布类的构造函数
@param rows int, 画布的行数
@param cols int, 画布的列数
行数和列数决定着画布拥有方格的数目
*/
public GameCanvas(int rows, int cols) {
this.rows = rows;
this.cols = cols;
this.setOpaque(false);
boxes = new Box[rows][cols];
for (int i = 0; i < boxes.length; i++) {
for (int j = 0; j < boxes[i].length; j++) {
boxes[i][j] = new Box(false);
}
}
setBounds(0, 0, 300, 500);//设置相对位置坐标
setBorder(new EtchedBorder(
EtchedBorder.RAISED, Color.white, new Color(148, 145, 140)));
}
/**
画布类的构造函数
@param rows 与public GameCanvas(int rows, int cols)同
@param cols 与public GameCanvas(int rows, int cols)同
@param backColor Color, 背景色
@param frontColor Color, 前景色
*/
public GameCanvas(int rows, int cols,
Color backColor, Color frontColor) {
this(rows, cols);
this.backColor = backColor;
this.frontColor = frontColor;
}
/**
设置游戏背景色彩
@param backColor Color, 背景色彩
*/
public void setBackgroundColor(Color backColor) {
this.backColor = backColor;
}
/**
取得游戏背景色彩
@return Color, 背景色彩
*/
public Color getBackgroundColor() {
return backColor;
}
/**
设置游戏方块色彩
@param frontColor Color, 方块色彩
*/
public void setBlockColor(Color frontColor) {
this.frontColor = frontColor;
}
/**
取得游戏方块色彩
@return Color, 方块色彩
*/
public Color getBlockColor() {
return frontColor;
}
/**
取得画布中方格的行数
@return int, 方格的行数
*/
public int getRows() {
return rows;
}
/**
取得画布中方格的列数
@return int, 方格的列数
*/
public int getCols() {
return cols;
}
/**
取得游戏成绩
@return int, 分数
*/
public int getScore() {
return score;
}
/**
取得自上一次升级后的积分
@return int, 上一次升级后的积分
*/
public int getScoreForLevelUpdate() {
return scoreForLevelUpdate;
}
/**