本文主要向大家介绍了JAVA语言俄罗斯方块代码实现,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
06主要是定义了一些按键事件,继承了KeyAdapter类,KeyEvent中的getKeyCode()方法可以监测按下了什么按键。
对于触碰左侧、右侧的事件,主要通过x的取值来进行判断。对于持续按下“Down”键,通过Thread的sleep()参数来控制。
TetrisClient类:
import java.awt.*;
import java.awt.event.*;
public class TetrisClient extends Frame{
//声明变量,窗口出现的位置
int x = 300;
int y = 100;
//游戏窗体宽高
public static final int WIDTH = 400;
public static final int HEIGHT = 480;
//修正值
public static final int CORRECT_X = 110;
public static final int CORRECT_Y = 50;
//游戏区域大小
public static final int GAME_WIDTH = 200;
public static final int GAME_HEIGHTH = 400;
Shape s = new Shape(CORRECT_X + 60, CORRECT_Y + 60, 3);
public void lancher() {
//出现位置
this.setLocation(x,y);
//大小
this.setSize(WIDTH, HEIGHT);
//设置标题
this.setTitle("Tetris Game");
//不可调节大小
this.setResizable(false);
//布局属性
this.setLayout(null);
//设置游戏背景颜色
this.setBackground(new Color(255, 239, 213));
//添加窗口关闭事件
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//启动一个刷新线程
new Thread(new paintThread()).start();
//可见性
this.setVisible(true);
//添加按键监控
this.addKeyListener(new keyMonitor());
}
@Override
public void paint(Graphics g) {
Color c = g.getColor();
g.drawRect(CORRECT_X, CORRECT_Y, GAME_WIDTH, GAME_HEIGHTH);
g.setColor(c);
//关于Shape的测试
s.draw(g);
s.changeStatus();
if(!s.stopped) {
s.drop();
}
}
public static void main(String[] args) {
new TetrisClient().lancher();
}
//刷新类(内部类)-线程
public class paintThread implements Runnable{
@Override
public void run() {
while(true) {
repaint();
//刷新间隔
try {
//“下”键按下加速
if(!s.speedUp) {
Thread.sleep(300);
}
Thread.sleep(20);
} catch (InterruptedException e) {
e.getStackTrace();
}
}
}
}
//按键事件的内部类
private class keyMonitor extends KeyAdapter{
@Override
public void keyPressed(KeyEvent e) {
s.keyPressed(e);
}
@Override
public void keyReleased(KeyEvent e) {
s.keyReleased(e);
}
}
}
Unit类:
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
public class Unit {
//出现的位置
private int x,y;
//大小
public static final int SIZE = 20;
//下落步长
public static
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!