小游戏俄罗斯方块代码JAVA.docx
- 文档编号:4839575
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:27
- 大小:19.37KB
小游戏俄罗斯方块代码JAVA.docx
《小游戏俄罗斯方块代码JAVA.docx》由会员分享,可在线阅读,更多相关《小游戏俄罗斯方块代码JAVA.docx(27页珍藏版)》请在冰豆网上搜索。
小游戏俄罗斯方块代码JAVA
东西绝对不多说,直接看!
看了拷贝就懂了!
!
,直接可以拷贝下面的东西,然后记得把那个BLOCK的名字改成你自己的类名,这个很关键哦,不然是错的可别怪我,呵呵~~
importjava.awt.*;
import
importjavax.swing.*;
importjava.applet.*;
import.*;
importjava.lang.*;
importjava.io.*;
publicclassBlockextendsJPanelimplementsActionListener,KeyListener//应该是继承JPanel
{
staticButtonbut[]=newButton[6];
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[][]=newint[19][10];
staticintgame_sign_x[]=newint[4];//用于记录4个方格的水平位置
staticintgame_sign_y[]=newint[4];//用于记录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;i<6;i++)
{
but[i]=newButton(butLab[i]);
add(but[i]);
but[i].addActionListener(this);
but[i].addKeyListener(this);
but[i].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);
but[1].setEnabled(false);
but[4].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()==but[0])//开始游戏
{
startSign=1;
infoTex.setText("游戏已经开始!
");
but[0].setEnabled(false);
but[1].setEnabled(true);
but[4].setEnabled(true);
timer.resume();
}
if(e.getSource()==but[1]||e.getSource()==mi0)//重新开始游戏
{
startSign=0;
gameScore=0;
timer.suspend();
num_csh_restart();
repaint();
rand_block();
scoreTex.setText("0");
infoTex.setText("新游戏!
");
but[0].setEnabled(true);
but[1].setEnabled(false);
but[4].setEnabled(false);
}
if(e.getSource()==but[2])//降低级数
{
infoTex.setText("降低级数!
");
speedMark--;
if(speedMark<=1)
{
speedMark=1;
infoTex.setText("已经是最低级数!
");
}
speedTex.setText(speedMark+"");
}
if(e.getSource()==but[3])//提高级数
{
infoTex.setText("提高级数!
");
speedMark++;
if(speedMark>=9)
{
speedMark=9;
infoTex.setText("已经是最高级数!
");
}
speedTex.setText(speedMark+"");
}
if(e.getSource()==but[4])//游戏暂停
{
this.add(noStop);
this.remove(but[4]);
infoTex.setText("游戏暂停!
");
timer.suspend();
}
if(e.getSource()==noStop)//取消暂停
{
this.remove(noStop);
this.add(but[4]);
infoTex.setText("继续游戏!
");
timer.resume();
}
if(e.getSource()==but[5]||e.getSource()==mi1)//退出游戏
{
jf.dispose();
}
if(e.getSource()==mi1_0)//退出游戏
{
dlg_1=newJDialog(jf,"关于");
try{
FileInputStreamio=newFileInputStream("resource/guanyu.txt");//得到路径
bytea[]=newbyte[io.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;//产生0~6之间的随机数
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_y[0]==game_sign_y[1]&&game_sign_y[3]<=16)//说明长条是横着的
{
if(game_body[game_sign_y[0]-1][game_sign_x[0]+1]!
=2&&game_body[game_sign_y[3]+2][game_sign_x[3]-2]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]-1][game_sign_x[0]+1]=1;
game_body[game_sign_y[1]][game_sign_x[1]]=1;
game_body[game_sign_y[2]+1][game_sign_x[2]-1]=1;
game_body[game_sign_y[3]+2][game_sign_x[3]-2]=1;
infoTex.setText("游戏进行中!
");
repaint();
}
}
if(game_sign_x[0]==game_sign_x[1]&&game_sign_x[0]>=1&&game_sign_x[3]<=7)//说明长条是竖着的
{
if(game_body[game_sign_y[0]+1][game_sign_x[0]-1]!
=2&&game_body[game_sign_y[3]-2][game_sign_x[3]+2]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]+1][game_sign_x[0]-1]=1;
game_body[game_sign_y[1]][game_sign_x[1]]=1;
game_body[game_sign_y[2]-1][game_sign_x[2]+1]=1;
game_body[game_sign_y[3]-2][game_sign_x[3]+2]=1;
infoTex.setText("游戏进行中!
");
repaint();
}
}
}
if(blockNumber==3&&downSign==false)//变换转弯1有4种情况
{
if(game_sign_x[0]==game_sign_x[1]&&game_sign_x[0]==game_sign_x[2]&&game_sign_y[2]==game_sign_y[3]&&game_sign_x[0]>=1)
{
if(game_body[game_sign_y[0]+1][game_sign_x[0]-1]!
=2&&game_body[game_sign_y[2]-1][game_sign_x[2]+1]!
=2&&game_body
[game_sign_y[3]-2][game_sign_x[3]]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]+1][game_sign_x[0]-1]=1;
game_body[game_sign_y[1]][game_sign_x[1]]=1;
game_body[game_sign_y[2]-1][game_sign_x[2]+1]=1;
game_body[game_sign_y[3]-2][game_sign_x[3]]=1;
infoTex.setText("游戏进行中!
");
repaint();
}
}
if(game_sign_y[1]==game_sign_y[2]&&game_sign_y[2]==game_sign_y[3]&&game_sign_x[0]==game_sign_x[3]&&game_sign_y[1]<=17)
{
if(game_body[game_sign_y[0]][game_sign_x[0]-2]!
=2&&game_body[game_sign_y[1]+1][game_sign_x[1]+1]!
=2&&game_body[game_sign_y
[3]-1][game_sign_x[3]-1]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]][game_sign_x[0]-2]=1;
game_body[game_sign_y[1]+1][game_sign_x[1]+1]=1;
game_body[game_sign_y[2]][game_sign_x[2]]=1;
game_body[game_sign_y[3]-1][game_sign_x[3]-1]=1;
infoTex.setText("游戏进行中!
");
repaint();
}
}
if(game_sign_x[1]==game_sign_x[2]&&game_sign_x[1]==game_sign_x[3]&&game_sign_y[0]==game_sign_y[1]&&game_sign_x[3]<=8)
{
if(game_body[game_sign_y[0]+2][game_sign_x[0]]!
=2&&game_body[game_sign_y[1]+1][game_sign_x[1]-1]!
=2&&game_body[game_sign_y
[3]-1][game_sign_x[3]+1]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]+2][game_sign_x[0]]=1;
game_body[game_sign_y[1]+1][game_sign_x[1]-1]=1;
game_body[game_sign_y[2]][game_sign_x[2]]=1;
game_body[game_sign_y[3]-1][game_sign_x[3]+1]=1;
infoTex.setText("游戏进行中!
");
repaint();
}
}
if(game_sign_y[0]==game_sign_y[1]&&game_sign_y[1]==game_sign_y[2]&&game_sign_x[0]==game_sign_x[3])
{
if(game_body[game_sign_y[0]+1][game_sign_x[0]+1]!
=2&&game_body[game_sign_y[2]-1][game_sign_x[2]-1]!
=2&&game_body
[game_sign_y[3]][game_sign_x[3]+2]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]+1][game_sign_x[0]+1]=1;
game_body[game_sign_y[1]][game_sign_x[1]]=1;
game_body[game_sign_y[2]-1][game_sign_x[2]-1]=1;
game_body[game_sign_y[3]][game_sign_x[3]+2]=1;
infoTex.setText("游戏进行中!
");
repaint();
}
}
}
if(blockNumber==4&&downSign==false)//变换转弯2有4种情况
{
if(game_sign_x[0]==game_sign_x[1]&&game_sign_x[0]==game_sign_x[3]&&game_sign_y[1]==game_sign_y[2]&&game_sign_x[3]<=7)
{
if(game_body[game_sign_y[0]+2][game_sign_x[0]]!
=2&&game_body[game_sign_y[1]+1][game_sign_x[1]+1]!
=2&&game_body[game_sign_y
[3]][game_sign_x[3]+2]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]+2][game_sign_x[0]]=1;
game_body[game_sign_y[1]+1][game_sign_x[1]+1]=1;
game_body[game_sign_y[2]][game_sign_x[2]]=1;
game_body[game_sign_y[3]][game_sign_x[3]+2]=1;
infoTex.setText("游戏进行中!
");
repaint();
}
}
if(game_sign_y[1]==game_sign_y[2]&&game_sign_y[1]==game_sign_y[3]&&game_sign_x[0]==game_sign_x[2])
{
if(game_body[game_sign_y[1]][game_sign_x[1]+2]!
=2&&game_body[game_sign_y[2]-1][game_sign_x[2]+1]!
=2&&game_body[game_sign_y
[3]-2][game_sign_x[3]]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]][game_sign_x[0]]=1;
game_body[game_sign_y[1]][game_sign_x[1]+2]=1;
game_body[game_sign_y[2]-1][game_sign_x[2]+1]=1;
game_body[game_sign_y[3]-2][game_sign_x[3]]=1;
infoTex.setText("游戏进行中!
");
repaint();
}
}
if(game_sign_x[0]==game_sign_x[2]&&game_sign_x[0]==game_sign_x[3]&&game_sign_y[1]==game_sign_y[2]&&game_sign_x[0]>=2)
{
if(game_body[game_sign_y[0]][game_sign_x[0]-2]!
=2&&game_body[game_sign_y[2]-1][game_sign_x[2]-1]!
=2&&game_body[game_sign_y
[3]-2][game_sign_x[3]]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]][game_sign_x[0]-2]=1;
game_body[game_sign_y[1]][game_sign_x[1]]=1;
game_body[game_sign_y[2]-1][game_sign_x[2]-1]=1;
game_body[game_sign_y[3]-2][game_sign_x[3]]=1;
infoTex.setText("游戏进行中!
");
repaint();
}
}
if(game_sign_y[0]==game_sign_y[1]&&game_sign_y[0]==game_sign_y[2]&&game_sign_x[1]==game_sign_x[3]&&game_sign_y[0]<=16)
{
if(game_body[game_sign_y[0]+2][game_sign_x[0]]!
=2&&game_body[game_sign_y[1]+1][game_sign_x[1]-1]!
=2&&game_body[game_sign_y
[2]][game_sign_x[2]-2]!
=2)
{
num_csh_game();
game_body[game_sign_y[0]+2][game_sign_x[0]]=1;
game_body[game_sign_y[1]+1][game_sign_x[1]-1]=1;
game_body[game_sign_y[2]][game_sign_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小游戏 俄罗斯方块 代码 JAVA
![提示](https://static.bdocx.com/images/bang_tan.gif)