JAVA语言俄罗斯方块代码实现
小标 2019-01-09 来源 : 阅读 1110 评论 0

摘要:本文主要向大家介绍了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 <code class="java    

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(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小时内训课程