重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
假期闲着无事,就用一周多的时间看了百度java吧的一位大神(alwing)发布的视频,学着用java写了一个俄罗斯方块,在此就以发布源代码以及必要讲解的形式来感谢他的帮助。当然我这里也是做了一些改动,做出来的程序界面以及功能没有和他的完全一样。
在红旗等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站设计、外贸营销网站建设 网站设计制作定制网站开发,公司网站建设,企业网站建设,高端网站设计,全网整合营销推广,成都外贸网站建设公司,红旗网站建设费用合理。整个程序运行起来的界面如下所示:
程序包含的功能有:
一、
整个程序的设计如下图所示,共有七个包。因为程序原先的设计是会连接数据库保存用户名称以及分数的,而我的电脑又因为数据库软件安装失败,所以功能上我做了调整。因此某些包名以及类名会与其本身功能不符。
二、
整个程序中最重要的界面编程是由UI包中的Layer类来建立的,它定义了一个方法使一张64乘64像素的图片运用drawImage函数来切割、拉伸成预定的宽度和高度,并使之显示在指定的坐标,从而成为一个窗口。 UI包中的各个Layer***.java类都继承了Layer类,分别用来实现各个窗口界面,如游戏主窗口(LayerGame)、等级窗口(LayerLevel)、分数窗口(LayerPoint)等。此外我还在窗口表面覆盖了一层半透明的图片,从而实现了一种“朦胧感”。
三、
Img类是用来声明所有的图片对象的,我在声明边框图片WINDOW时,又故意写错路径,从而实现了无边框效果。
四、
下落方块的绘制也是采用图片切割的方法
下落方块应该是如下七种形状:
则方块0到方块6自由下落时的初始坐标应是:
TYPE_CONFIG=new ArrayList(7); TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(3,0),new Point(5,0),new Point(6,0)}); TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(3,0),new Point(5,0),new Point(4,1)}); TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(3,0),new Point(5,0),new Point(3,1)}); TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(5,0),new Point(3,1),new Point(4,1)}); TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(5,0),new Point(4,1),new Point(5,1)}); TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(3,0),new Point(5,0),new Point(5,1)}); TYPE_CONFIG.add(new Point[]{new Point(4,0),new Point(3,0),new Point(4,1),new Point(5,1)});