为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

毕业论文java俄罗斯方块游戏费下载

2018-06-28 12页 doc 88KB 12阅读

用户头像

is_321575

暂无简介

举报
毕业论文java俄罗斯方块游戏费下载毕业论文java俄罗斯方块游戏费下载 毕业论文java俄罗斯方块游戏 5( 详细设计 5.1模型层(Model)设计 5.1.1 图形的产生 通过图形工厂类ShapeFactory的getShape(ShapeListener listener)方法随机产生方块的某种状态,这里运用了工厂设计模式,这种设计模式是为了实现高内聚低耦合而存在的,这种设计模式的通俗解释就是:你想要一个产品,你需要让工厂给你生产一个,你要告诉工厂你要生产什么产品,就把你需要生产的这个产品当做参数传给工厂类的生产产品的方法,然后根据你传进来的产...
毕业论文java俄罗斯方块游戏费下载
毕业java俄罗斯方块游戏费下载 毕业论文java俄罗斯方块游戏 5( 详细 5.1模型层(Model)设计 5.1.1 图形的产生 通过图形工厂类ShapeFactory的getShape(ShapeListener listener)方法随机产生方块的某种状态,这里运用了工厂设计模式,这种设计模式是为了实现高内聚低耦合而存在的,这种设计模式的通俗解释就是:你想要一个产品,你需要让工厂给你生产一个,你要告诉工厂你要生产什么产品,就把你需要生产的这个产品当做参数传给工厂类的生产产品的方法,然后根据你传进来的产品,而决定工厂人生产什么产品,产生出来产品后,最 后要返回您要的这个东西。 随机产生一个数 随机数 1 2 3 4 5 6 7 一字形Z字形7字形反7形倒T形田字型反Z 形 5.1.2 图形的数据结构 定义一个4x4方阵,共16个小格。用“0”和“1”来示每个方格是绘制还是空白,由此可以组合出多种图形,如图所示: 其中图一表示为{0,0,0,0, 1,1,1,1 , 0,0,0,0, 0,0,0,0} 1 毕业论文java俄罗斯方块游戏 其中图二表示为{0,0,0,0, 0,1,1,0 , 0,1,1,0, 0,0,0,0} 其中图三表示为{0,0,0,0, 0,1,0,0 , 0,1,1,1, 0,0,0,0} 其中图四表示为{0,0,0,0, 0,1,0,1 , 0,1,1,0, 0,0,1,0} 方块的旋转是通过绘制4个方向的方块,在不同旋转角度显示不同方向的方块来完成的。所以程序要控制方块的旋转方向,只要控制显示哪副图就可以了。 本游戏是用一个三维数组int[][][] shapes = new int[][][];作为存储方块的数据结构来保存方块的28种状态的。 5.1.3 图形的移动 图形类Shape保存了自己的位置信息,用left表示图形到左边界的距离,top表示图形到上边界的距离,图形移动就是改变left和top的值。向上移动:top减1,向下移动:top加1,向左移动:left减1,向右移动:left加1。 图形的移动分为图形的自动下落以及通过按键事件实现图形的左移、右移以及加速下移。通过多线程ShapeDriver类来实现图形的自动下移,由于游戏中方块的动态性,每个方块有一定的生命周期,所以选用线程来实现方块。一个方块用一个线程类对象实现,该类继承与Thread类,当一个方块出现时也就表示一个线程对象产生并开始运行。通过对按键事件的响应,实现图形的左移、右移以及加速下移。 5.1.4 图形的变形 通过int type = new Random().nextInt(shapes.length); shape.setBody(shapes[type]); shape.setStatus(0);实现初始图形的初始化,通过status = (status + 1) % body.length;实现图形的变形功能。 5.1.5 存储和表示障碍物 用一个和显示区域的面板大小相对应的二维数组保存障碍物的位置信息,如果对应的位置是障碍物,则这个数组中相应的元素就为1,否则就为0。如何把图形变成障碍物呢,只要把属于图形的格子对应的位置都变成障碍物即可。代码如下: public boolean isMember(int x, int y, boolean rotate) { int tempStatus = status; if(rotate) { tempStatus = (status + 1) % body.length; } return body[tempStatus][y*4 + x] == 1; } public void accept(Shape shape) { System.out.println("Ground's accept"); 2 毕业论文java俄罗斯方块游戏 for(int x=0; x<4; x++) { for(int y=0; y<4; y++) { if(shape.isMember(x, y, false)) { if((shape.getLeft() + x)=0; y--) { boolean full = true; for(int x=0; x0; y--) { for(int x=0; x
/
本文档为【毕业论文java俄罗斯方块游戏费下载】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索