小游戏俄罗斯方块代码(JAVA).doc_第1页
小游戏俄罗斯方块代码(JAVA).doc_第2页
小游戏俄罗斯方块代码(JAVA).doc_第3页
小游戏俄罗斯方块代码(JAVA).doc_第4页
小游戏俄罗斯方块代码(JAVA).doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东西绝对不多说,直接看!看了拷贝就懂了!,直接可以拷贝下面的东西,然后记得把那个BLOCK的名字改成你自己的类名,这个很关键哦,不然是错的可别怪我,呵呵importjava.awt.*;importimportjavax.swing.*;importjava.applet.*;import.*;importjava.lang.*;importjava.io.*;publicclassBlockextendsJPanelimplementsActionListener,KeyListener/应该是继承JPanelstaticButtonbut=newButton6;staticButtonnoStop=newButton(取消暂停);staticLabelscoreLab=newLabel(分数:);staticLabelinfoLab=newLabel(提示:);staticLabelspeedLab=newLabel(级数:);staticLabelscoreTex=newLabel(0);staticLabelinfoTex=newLabel();staticLabelspeedTex=newLabel(1);staticJFramejf=newJFrame();staticMyTimertimer;staticImageIconicon=newImageIcon(resource/Block.jpg);staticJMenuBarmb=newJMenuBar();staticJMenumenu0=newJMenu(游戏);staticJMenumenu1=newJMenu(帮助);staticJMenuItemmi0=newJMenuItem(新游戏);staticJMenuItemmi1=newJMenuItem(退出);staticJMenuItemmi1_0=newJMenuItem(关于);staticJDialogdlg_1;staticJTextAreadlg_1_text=newJTextArea();staticintstartSign=0;/游戏开始标志0未开始1开始2暂停staticStringbutLab=开始游戏,重新开始,降低级数,提高级数,游戏暂停,退出游戏;staticintgame_body=newint1910;staticintgame_sign_x=newint4;/用于记录4个方格的水平位置staticintgame_sign_y=newint4;/用于记录4个方格的垂直位置staticbooleandownSign=false;/是否落下staticintblockNumber=1;/砖块的编号staticintgameScore=0;/游戏分数staticintspeedMark=1;publicstaticvoidmain(Stringargs)BlockmyBlock=newBlock();mb.add(menu0);mb.add(menu1);menu0.add(mi0);menu0.add(mi1);menu1.add(mi1_0);jf.setJMenuBar(mb);myBlock.init();jf.add(myBlock);jf.setSize(565,501);jf.setResizable(false);jf.setTitle(俄罗斯方块);jf.setIconImage(icon.getImage();jf.setLocation(200,100);jf.show();timer=newMyTimer(myBlock);/启动线程timer.setDaemon(true);timer.start();timer.suspend();publicvoidinit()setLayout(null);for(inti=0;i6;i+)buti=newButton(butLabi);add(buti);buti.addActionListener(this);buti.addKeyListener(this);buti.setBounds(360,(240+30*i),160,25);add(scoreLab);add(scoreTex);add(speedLab);add(speedTex);add(infoLab);add(infoTex);add(scoreLab);scoreLab.setBounds(320,15,30,20);scoreTex.setBounds(360,15,160,20);scoreTex.setBackground(Color.white);speedLab.setBounds(320,45,30,20);speedTex.setBounds(360,45,160,20);speedTex.setBackground(Color.white);but1.setEnabled(false);but4.setEnabled(false);infoLab.setBounds(320,75,30,20);infoTex.setBounds(360,75,160,20);infoTex.setBackground(Color.white);noStop.setBounds(360,360,160,25);noStop.addActionListener(this);noStop.addKeyListener(this);mi0.addActionListener(this);mi1.addActionListener(this);mi1_0.addActionListener(this);num_csh_game();rand_block();publicvoidactionPerformed(ActionEvente)if(e.getSource()=but0)/开始游戏startSign=1;infoTex.setText(游戏已经开始!);but0.setEnabled(false);but1.setEnabled(true);but4.setEnabled(true);timer.resume();if(e.getSource()=but1|e.getSource()=mi0)/重新开始游戏startSign=0;gameScore=0;timer.suspend();num_csh_restart();repaint();rand_block();scoreTex.setText(0);infoTex.setText(新游戏!);but0.setEnabled(true);but1.setEnabled(false);but4.setEnabled(false);if(e.getSource()=but2)/降低级数infoTex.setText(降低级数!);speedMark-;if(speedMark=9)speedMark=9;infoTex.setText(已经是最高级数!);speedTex.setText(speedMark+);if(e.getSource()=but4)/游戏暂停this.add(noStop);this.remove(but4);infoTex.setText(游戏暂停!);timer.suspend();if(e.getSource()=noStop)/取消暂停this.remove(noStop);this.add(but4);infoTex.setText(继续游戏!);timer.resume();if(e.getSource()=but5|e.getSource()=mi1)/退出游戏jf.dispose();if(e.getSource()=mi1_0)/退出游戏dlg_1=newJDialog(jf,关于);tryFileInputStreamio=newFileInputStream(resource/guanyu.txt);/得到路径bytea=newbyteio.available();io.read(a);io.close();Stringstr=newString(a);dlg_1_text.setText(str);catch(Exceptiong)dlg_1_text.setEditable(false);dlg_1.add(dlg_1_text);dlg_1.pack();dlg_1.setResizable(false);dlg_1.setSize(200,120);dlg_1.setLocation(400,240);dlg_1.show();publicvoidrand_block()/随机产生砖块intnum;num=(int)(Math.random()*6)+1;/产生06之间的随机数blockNumber=num;switch(blockNumber)case1:block1();blockNumber=1;break;case2:block2();blockNumber=2;break;case3:block3();blockNumber=3;break;case4:block4();blockNumber=4;break;case5:block5();blockNumber=5;break;case6:block6();blockNumber=6;break;case7:block7();blockNumber=7;break;publicvoidchange_body(intblockNumber)/改变砖块状态dingwei();if(blockNumber=1&downSign=false)/变换长条2种情况if(game_sign_y0=game_sign_y1&game_sign_y3=1&game_sign_x3=1)if(game_bodygame_sign_y0+1game_sign_x0-1!=2&game_bodygame_sign_y2-1game_sign_x2+1!=2&game_bodygame_sign_y3-2game_sign_x3!=2)num_csh_game();game_bodygame_sign_y0+1game_sign_x0-1=1;game_bodygame_sign_y1game_sign_x1=1;game_bodygame_sign_y2-1game_sign_x2+1=1;game_bodygame_sign_y3-2game_sign_x3=1;infoTex.setText(游戏进行中!);repaint();if(game_sign_y1=game_sign_y2&game_sign_y2=game_sign_y3&game_sign_x0=game_sign_x3&game_sign_y1=17)if(game_bodygame_sign_y0game_sign_x0-2!=2&game_bodygame_sign_y1+1game_sign_x1+1!=2&game_bodygame_sign_y3-1game_sign_x3-1!=2)num_csh_game();game_bodygame_sign_y0game_sign_x0-2=1;game_bodygame_sign_y1+1game_sign_x1+1=1;game_bodygame_sign_y2game_sign_x2=1;game_bodygame_sign_y3-1game_sign_x3-1=1;infoTex.setText(游戏进行中!);repaint();if(game_sign_x1=game_sign_x2&game_sign_x1=game_sign_x3&game_sign_y0=game_sign_y1&game_sign_x3=8)if(game_bodygame_sign_y0+2game_sign_x0!=2&game_bodygame_sign_y1+1game_sign_x1-1!=2&game_bodygame_sign_y3-1game_sign_x3+1!=2)num_csh_game();game_bodygame_sign_y0+2game_sign_x0=1;game_bodygame_sign_y1+1game_sign_x1-1=1;game_bodygame_sign_y2game_sign_x2=1;game_bodygame_sign_y3-1game_sign_x3+1=1;infoTex.setText(游戏进行中!);repaint();if(game_sign_y0=game_sign_y1&game_sign_y1=game_sign_y2&game_sign_x0=game_sign_x3)if(game_bodygame_sign_y0+1game_sign_x0+1!=2&game_bodygame_sign_y2-1game_sign_x2-1!=2&game_bodygame_sign_y3game_sign_x3+2!=2)num_csh_game();game_bodygame_sign_y0+1game_sign_x0+1=1;game_bodygame_sign_y1game_sign_x1=1;game_bodygame_sign_y2-1game_sign_x2-1=1;game_bodygame_sign_y3game_sign_x3+2=1;infoTex.setText(游戏进行中!);repaint();if(blockNumber=4&downSign=false)/变换转弯2有4种情况if(game_sign_x0=game_sign_x1&game_sign_x0=game_sign_x3&game_sign_y1=game_sign_y2&game_sign_x3=2)if(game_bodygame_sign_y0game_sign_x0-2!=2&game_bodygame_sign_y2-1game_sign_x2-1!=2&game_bodygame_sign_y3-2game_sign_x3!=2)num_csh_game();game_bodygame_sign_y0game_sign_x0-2=1;game_bodygame_sign_y1game_sign_x1=1;game_bodygame_sign_y2-1game_sign_x2-1=1;game_bodygame_sign_y3-2game_sign_x3=1;infoTex.setText(游戏进行中!);repaint();if(game_sign_y0=game_sign_y1&game_sign_y0=game_sign_y2&game_sign_x1=game_sign_x3&game_sign_y0=2)if(game_bodygame_sign_y0+1game_sign_x0-1!=2&game_bodygame_sign_y1game_sign_x1-2!=2&game_bodygame_sign_y3-1game_sign_x3+1!=2)num_csh_game();game_bodygame_sign_y0+1game_sign_x0-1=1;game_bodygame_sign_y1game_sign_x1-2=1;game_bodygame_sign_y2game_sign_x2=1;game_bodygame_sign_y3-1game_sign_x3+1=1;infoTex.setText(游戏进行中!);repaint();if(game_sign_y1=game_sign_y2&game_sign_y2=game_sign_y3&game_sign_x0=game_sign_x1&game_sign_y0=2)if(game_bodygame_sign_y0game_sign_x0-2!=2&game_bodygame_sign_y2-1game_sign_x2-1!=2&game_bodygame_sign_y3-1game_sign_x3+1!=2)num_csh_game();game_bodygame_sign_y0game_sign_x0-2=1;game_bodygame_sign_y1game_sign_x1=1;game_bodygame_sign_y2-1game_sign_x2-1=1;game_bodygame_sign_y3-1game_sign_x3+1=1;infoTex.setText(游戏进行中!);repaint();if(game_sign_y0=game_sign_y1&game_sign_y3=17)if(game_bodygame_sign_y0game_sign_x0+2!=2&game_bodygame_sign_y1+1game_sign_x1+1!=2&game_bodygame_sign_y3+1game_sign_x3-1!=2)num_csh_game();game_bodygame_sign_y0game_sign_x0+2=1;game_bodygame_sign_y1+1game_sign_x1+1=1;game_bodygame_sign_y2game_sign_x2=1;game_bodygame_sign_y3+1game_sign_x3-1=1;infoTex.setText(游戏进行中!);repaint();if(blockNumber=7&downSign=false)/变换两层砖块2的2种情况if(game_sign_x0=game_sign_x1&game_sign_x0=16)if(game_bodygame_sign_y0game_sign_x0+2!=2&game_bodygame_sign_y1-1game_sign_x1+1!=2&game_bodygame_sign_y3-1game_sign_x3-1!=2)num_csh_game();game_bodygame_sign_y0game_sign_x0+2=1;game_bodygame_sign_y1-1game_sign_x1+1=1;game_bodygame_sign_y2game_sign_x2=1;game_bodygame_sign_y3-1game_sign_x3-1=1;infoTex.setText(游戏进行中!);repaint();if(game_sign_y0=game_sign_y1&game_sign_y2=17)if(game_bodygame_sign_y0+1game_sign_x0-1!=2&game_bodygame_sign_y1game_sign_x1-2!=2&game_bodygame_sign_y2+1game_sign_x2+1!=2)num_csh_game();game_bodygame_sign_y0+1game_sign_x0-1=1;game_bodygame_sign_y1game_sign_x1-2=1;game_bodygame_sign_y2+1game_sign_x2+1=1;game_bodygame_sign_y3game_sign_x3=1;infoTex.setText(游戏进行中!);repaint();publicvoidnum_csh_game()/数组清零for(inti=0;i19;i+)for(intj=0;j10;j+)if(game_bodyij=2)game_bodyij=2;elsegame_bodyij=0;publicvoidnum_csh_restart()/重新开始时数组清零for(inti=0;i19;i+)for(intj=0;j10;j+)game_bodyij=0;publicvoidkeyTyped(KeyEvente)publicvoidkeyPressed(KeyEvente)if(e.getKeyCode()=KeyEvent.VK_DOWN&startSign=1)/处理下键this.down();if(e.getKeyCode()=KeyEvent.VK_LEFT&startSign=1)/处理左键this.left();if(e.getKeyCode()=KeyEvent.VK_RIGHT&startSign=1)/处理右键this.right();if(e.getKeyCode()=KeyEvent.VK_UP&startSign=1)/处理上键转换this.change_body(blockNumber);if(startSign=0)infoTex.setText(游戏未开始或已结束!);publicvoidkeyReleased(KeyEvente)publicvoidpaint(Graphicsg)g.setColor(Color.black);g.fill3DRect(0,0,300,450,true);for(inti=0;i19;i+)for(intj=0;j10;j+)if(game_bodyij=1)g.setColor(Color.blue);g.fill3DRect(30*j,30*(i-4),30,30,true);if(game_bodyij=2)g.setColor(Color.magenta);g.fill3DRect(30*j,30*(i-4),30,30,true);publicvoidleft()/向左移动intsign=0;dingwei();for(intk=0;k4;k+)if(game_sign_xk=0|game_bodygame_sign_ykgame_sign_xk-1=2)sign=1;if(sign=0&downSign=false)num_csh_game();for(intk=0;k4;k+)game_bodygame_sign_ykgame_sign_xk-1=1;infoTex.setText(向左移动!);repaint();publicvoidright()/向右移动intsign=0;dingwei();for(intk=0;k4;k+)if(game_sign_xk=9|game_bodygame_sign_ykgame_sign_xk+1=2)sign=1;if(sign=0&downSign=false)num_csh_game();for(intk=0;k4;k+)game_bodygame_sign_ykgame_sign_xk+1=1;infoTex.setText(向右移动!);repaint();publicvoiddown()/下落intsign=0;dingwei();for(intk=0;k4;k+)if(game_sign_yk=18|game_bodygame_sign_yk+1game_sign_xk=2)sign=1;downSign=true;changeColor();cancelDW();getScore();if(game_over()=false)rand_block();repaint();if(sign=0)num_csh_game();for(intk=0;k4;k+)game_bodygame_sign_yk+1game_sign_xk=1;infoTex.setText(游戏进行中!);repaint();publicbooleangame_over()/判断游戏是否结束intsign=0;for(inti=0;i10;i+)if(game_body4i=2)sign=1;if(sign=1)infoTex.setText(游戏结束!);changeColor();repaint();startSign=0;timer.suspend();returntrue;elsereturnfalse;publicvoidgetScore()/满行消除方法for(inti=0;i19;i+)intsign=0;for(intj=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论