俄罗斯方块代码 java_JAVA语言俄罗斯方块代码实现

本文主要向大家介绍了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频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值