欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java俄罗斯方块实现步骤.ppt

    • 资源ID:63996424       资源大小:81KB        全文页数:25页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java俄罗斯方块实现步骤.ppt

    JAVAJAVA程序设计程序设计项目实训演练项目实训演练!项目实战项目实战俄罗斯方块俄罗斯方块主主讲:贾宗维讲:贾宗维程序演示程序演示游戏游戏01_功能演示与说明功能演示与说明游戏游戏02_面向对象设计面向对象设计游戏游戏03_使用使用API类组装游戏类组装游戏游戏游戏04_编写各个类主体框架编写各个类主体框架游戏游戏05_编写编写Controler类实现事件监听类实现事件监听游戏游戏06_编写类测试代码编写类测试代码游戏游戏07_图形设计与创建图形设计与创建游戏游戏08_图形移动与显示图形移动与显示游戏游戏09_处理游戏边界问题处理游戏边界问题游戏游戏10_障碍物生成与显示障碍物生成与显示游戏游戏11_消除满行的障碍物消除满行的障碍物游戏游戏12_增加游戏结束增加游戏结束游戏游戏13_定时下落定时下落编写各个类主体框架编写各个类主体框架-Shape类类public class Shape /private ShapeListener listener;public void moveLeft()System.out.println(shapes moveLeft);public void moveRight()System.out.println(shapes moveright);public void moveDown()System.out.println(shapes moveDown);public void rotate()System.out.println(shapes rotate);public void drawMe()System.out.println(shapes drawme);private class ShapeDriver implements Runnablepublic void run()/TODO Auto-generated method stubwhile(true)moveDown();/listener.shapeMoveDown(Shape.this);try Thread.sleep(1000);catch(InterruptedException e)/TODO Auto-generated catch blocke.printStackTrace();编写各个类主体框架编写各个类主体框架-ShapeFactory类类public class ShapeFactory public Shape getShape(ShapeListener listener)System.out.println(ShapeFactorys getShape);Shape shape=new Shape();return shape;编写各个类主体框架编写各个类主体框架-Ground类类package cn.tetris.entities;public class Ground public void accept()System.out.println(Grounds accept);public void drawMe()System.out.println(Grounds drawMe);编写各个类主体框架编写各个类主体框架-GamePanel类类public class GamePanel extends JPanel private Ground ground;private Shape shape;public void display(Ground ground,Shape shape)System.out.println(GamePanels display);this.ground=ground;this.shape=shape;this.repaint();Overrideprotected void paintComponent(Graphics arg0)/TODO Auto-generated method stub/重新显示if(ground!=null&shape!=null)ground.drawMe();shape.drawMe();编写各个类主体框架编写各个类主体框架-Controller类类public class Controller extends KeyAdapter private Ground ground;private Shape shape;private ShapeFactory shapeFactory;private GamePanel gamePanel;public void keyPressed(KeyEvent e)switch(e.getKeyCode()case KeyEvent.VK_UP:shape.rotate();break;case KeyEvent.VK_LEFT:shape.moveLeft();break;case KeyEvent.VK_RIGHT:shape.moveRight();break;case KeyEvent.VK_DOWN:shape.moveDown();break;gamePanel.display(ground,shape);编写各个类主体框架编写各个类主体框架-ShapeListener接接口口public interface ShapeListener void shapeMoveDown(Shape shape);Shape类增加监听器对象及下落后调用类增加监听器对象及下落后调用public class Shape private ShapeListener listener;public void moveLeft()System.out.println(shapes moveLeft);public void moveRight()System.out.println(shapes moveright);public void moveDown()System.out.println(shapes moveDown);public void rotate()System.out.println(shapes rotate);public void drawMe()System.out.println(shapes drawme);private class ShapeDriver implements Runnablepublic void run()/TODO Auto-generated method stubwhile(true)moveDown();listener.shapeMoveDown(Shape.this);try Thread.sleep(1000);catch(InterruptedException e)/TODO Auto-generated catch blocke.printStackTrace();Shape类中增加注册监听器的方法public void addShapeListener(ShapeListener l)if(l!=null)this.listener=l;Shape构造方法中启动下落线程public Shape()new Thread(new ShapeDriver().start();Controller类实现类实现ShapeListener接接口口public class Controller extends KeyAdapter implements ShapeListener public void shapeMoveDown(Shape shape)/TODO Auto-generated method stubgamePanel.display(ground,shape);生产图形时同时注册监听器public class ShapeFactory public Shape getShape(ShapeListener listener)System.out.println(ShapeFactorys getShape);Shape shape=new Shape();shape.addShapeListener(listener);return shape;GamePanel类设置大小public GamePanel()this.setSize(300,300);Controller类中增加开始新游戏方法类中增加开始新游戏方法public void newGame()shape=shapeFactory.getShape(this);Controller类中如何接收外部控制的对象类中如何接收外部控制的对象public Controller(ShapeFactory shapeFactory,Ground ground,GamePanel gamePanel)this.shapeFactory=shapeFactory;this.ground=ground;this.gamePanel=gamePanel;测试类Gamepublic class Game public static void main(String args)/TODO Auto-generated method stub ShapeFactory shapeFactory=new ShapeFactory();Ground ground=new Ground();GamePanel gamePanel=new GamePanel();Controller controller=new Controller(shapeFactory,ground,gamePanel);JFrame frame=new JFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(gamePanel.getSize().width+10,gamePanel.getSize().height+35);frame.add(gamePanel);gamePanel.addKeyListener(controller);frame.setVisible(true);controller.newGame();程程序步骤序步骤游戏游戏01_功能演示与说明功能演示与说明游戏游戏02_面向对象设计面向对象设计游戏游戏03_使用使用API类组装游戏类组装游戏游戏游戏04_编写各个类主体框架编写各个类主体框架游戏游戏05_编写编写Controler类实现事件监听类实现事件监听游戏游戏06_编写类测试代码编写类测试代码游戏游戏07_图形设计与创建图形设计与创建游戏游戏08_图形移动与显示图形移动与显示游戏游戏09_处理游戏边界问题处理游戏边界问题游戏游戏10_障碍物生成与显示障碍物生成与显示游戏游戏11_消除满行的障碍物消除满行的障碍物游戏游戏12_增加游戏结束增加游戏结束游戏游戏13_定时下落定时下落Shape类,增加图形的描述/二维变量用于保存图形的所有状态 private int body;/用于保存图形当前的状态 private int status;/设置状态的方法 public void setBody(int body)this.body=body;/设置当前是第几种状态 public void setStatus(int status)this.status=status;ShapeFactory类增加生产各种图形/三维数组用于表示一种图形的多种形状private int shapes=new int1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0;public Shape /生产一个随机数,用于表示图形的状态 int type=new Random().nextInt(shapes.length);/设置图形有几种状态 shape.setBody(shapestype);/设置默认状态 shape.setStatus(0);return shape;Shape类中增加图形的位置信息/表示图形距离左侧的距离 private int left;/表示图形距离上边界的距离 private int top;public void moveLeft()left-;public void moveRight()left+;public void moveDown()top+;public void rotate()/显示下一个状态,但得保证状态值不超过4,所以需处理status=(status+1)%body.length;Shape类中增加图形的绘制方法public void drawMe(Graphics g)System.out.println(shapes drawme);g.setColor(Color.RED);/循环访问代表方正的数组 for(int x=0;x4;x+)for(int y=0;y4;y+)if(getFlagByPoint(x,y)g.fill3DRect(left+x)*Global.CELL_SIZE,(top+y)*Global.CELL_SIZE,Global.CELL_SIZE,Global.CELL_SIZE,true);/获取方正中标志是1还是0,1表示要绘图0表示不绘图 private boolean getFlagByPoint(int x,int y)return bodystatusy*4+x=1;游戏常量的存放Glaobalpublic class Global /表示每个方格的像素值public static final int CELL_SIZE=20;/表示图形面板有多少个格子宽和高public static final int WIDTH=15;public static final int HEIGHT=15;测试游戏,下落方块出现拖影在GamePanel类的paintComponent方法中增加如下代码:在填充一个与背景同色的区域g.setColor(new Color(0 xcfcfcf);g.fillRect(0,0,Global.CELL_SIZE*Global.WIDTH,Global.CELL_SIZE*Global.HEIGHT);/填充一个灰色显示区域,避免图形拖影修改此处的同时还需修改Shape的drawme方法中设置图形的颜色,以及给frame也注册监听器。图形如何避免移出边界public boolean isMoveable(Shape shape,int action)/得到图像当前的位置信息 int left=shape.getLeft();int top=shape.getTop();/根据图形的动作,得出图形最新的位置信息 switch(action)case Shape.LEFT:left-;break;case Shape.RIGHT:left+;break;case Shape.DOWN:top+;break;/依次取出图形中的每一个点,判断是否超出显示区域 for(int x=0;x4;x+)for(int y=0;y=Global.HEIGHT|left+x=Global.WIDTH)return false;return true;

    注意事项

    本文(Java俄罗斯方块实现步骤.ppt)为本站会员(赵**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开