目录
一、心得
在学习Java的过程中,难免会遇到很多的问题,这些问题可能会困扰你许久,为此我有个Java学习交流群(925050116),里面都是CSDN的小伙伴,大家互相学习互相交流共同进步,每日分享不同的学习资料。
百度盘链接
链接:http://pan.baidu.com/s/1mhQ9SYc 密码:9ujo
二、游戏实例
游戏截图
目录结构
三、代码
1、主界面 Tetris.java
package com.hsj.tetris;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Arrays;
import java.util.Timer;
import java.util.TimerTask;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* 俄罗斯方块游戏面板
*
*/
public class Tetris extends JPanel {
/** 正在下落方块 */
private Tetromino tetromino;
/** 下一个下落方块 */
private Tetromino nextOne;
/** 行数 */
public static final int ROWS = 20;
/** 列数 */
public static final int COLS = 10;
/** 墙 */
private Cell[][] wall = new Cell[ROWS][COLS];
/** 消掉的行数 */
private int lines;
/** 分数 */
private int score;
public static final int CELL_SIZE = 26;
private static Image background;//背景图片
public static Image I;
public static Image J;
public static Image L;
public static Image S;
public static Image Z;
public static Image O;
public static Image T;
static{//加载静态资源的,加载图片
//建议将图片放到 Tetris.java 同包中!
//从包中加载图片对象,使用Swing API实现
// Toolkit toolkit = Toolkit.getDefaultToolkit();
// background = toolkit.getImage(
// Tetris.class.getResource("tetris.png"));
// T = toolkit.getImage(Tetris.class.getResource("T.png"));
// S = toolkit.getImage(Tetris.class.getResource("S.png"));
// Z = toolkit.getImage(Tetris.class.getResource("Z.png"));
// L = toolkit.getImage(Tetris.class.getResource("L.png"));
// J = toolkit.getImage(Tetris.class.getResource("J.png"));
// I = toolkit.getImage(Tetris.class.getResource("I.png"));
// O = toolkit.getImage(Tetris.class.getResource("O.png"));
//import javax.imageio.ImageIO;
try{
background = ImageIO.read(
Tetris.class.getResource("tetris.png"));
T=ImageIO.read(Tetris.class.getResource("T.png"));
I=ImageIO.read(Tetris.class.getResource("I.png"));
S=ImageIO.read(Tetris.class.getResource("S.png"));
Z=ImageIO.read(Tetris.class.getResource("Z.png"));
L=ImageIO.read(Tetris.class.getResource("L.png"));
J=ImageIO.read(Tetris.class.getResource("J.png"));
O=ImageIO.read(Tetris.class.getResource("O.png"));
}catch(Exception e){
e.printStackTrace();
}
}
public void action(){
//tetromino = Tetromino.randomTetromino();
//nextOne = Tetromino.randomTetromino();
//wall[19][2] = new Cell(19,2,Tetris.T);
startAction();
repaint();
KeyAdapter l = new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if(key == KeyEvent.VK_Q){
System.exit(0);//退出当前的Java进程
}
if(gameOver){
if(key==KeyEvent.VK_S){