package 狼魂;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import javax.swing.*;
public class 俄罗斯方块 extends KeyAdapter implements Runnable, MouseListener,MouseMotionListener
{
//定义变量(在下面)-----------------------------------------------------
int[][] luos=new int[24][13];
int[][] shis=new int[24][13];
int[][] lins=new int[24][13];
int zhuanh;
int zhuanl;
int[][] xias=new int[2][5];
int fen=0;
int ji=0;
int zhong=0;
int xiaKuai=0;
//定义变量(结束)--------------------------------------------------------
int mx=0;
int my=0;
JFrame frame;
Thread timerThread;
boolean start=false;
俄罗斯方块()
{
//构造初始(在下面)-----------------------------------------------------
造块();
造下块();
//构造初始(结束)--------------------------------------------------------
frame = new JFrame();
frame.getContentPane().add(new Screen());
frame.addKeyListener(this);
Container contentPane=frame.getContentPane();
contentPane.addMouseListener(this);
contentPane.addMouseMotionListener(this);
//窗口大小 frame.setSize(宽, 高);
frame.setSize(640+5*2, 480+22+5*2);
frame.setVisible(true);
frame.repaint();
}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseDragged(MouseEvent e){}
//鼠标单击
public void mouseClicked(MouseEvent e)
{
//鼠标位置
mx=e.getX();
my=e.getY();
//鼠标左键
if (e.getButton()==MouseEvent.BUTTON1)
{
//鼠标左键处理(在下面)-----------------------------------------------------
//鼠标左键处理(结束)--------------------------------------------------------
}
//鼠标右键
else if (e.getButton() == MouseEvent.BUTTON3)
{
//鼠标右键处理(在下面)-----------------------------------------------------
//鼠标右键处理(结束)--------------------------------------------------------
}
frame.repaint();
}
//鼠标移动
public void mouseMoved(MouseEvent e)
{
//鼠标位置
mx=e.getX();
my=e.getY();
//鼠标左键处理(在下面)-----------------------------------------------------
//鼠标左键处理(结束)--------------------------------------------------------
frame.repaint();
}
public void keyPressed(KeyEvent evt)
{
//键盘处理
switch(evt.getKeyCode())
{
case KeyEvent.VK_ENTER:
timerThread = new Thread(this);
timerThread.start();
start = !start;
break;
case KeyEvent.VK_SPACE:
if(能死吗())
{
for (int h=0;h<24; h++ )
{
for (int l=0;l<13 ;l++ )
{
shis[h][l]=0;
luos[h][l]=0;
}
}
timerThread = new Thread(this);
timerThread.start();
start=true;
fen=0;
ji=0;
造块();
造下块();
System.out.println(start);
}
break;
case KeyEvent.VK_ESCAPE:
start = false;
System.exit(1);
break;
case KeyEvent.VK_LEFT:
//键盘左箭头处理(在下面)-----------------------------------------------------
if(能左移吗())
{
左移();
}
//键盘左箭头处理(结束)--------------------------------------------------------
break;
case KeyEvent.VK_RIGHT:
//键盘右箭头处理(在下面)-----------------------------------------------------
if(能右移吗())
{
右移();
}
//键盘右箭头处理(结束)--------------------------------------------------------
break;
case KeyEvent.VK_DOWN:
//键盘下箭头处理(在下面)-----------------------------------------------------
while(能落吗())
{
按下加速();
}
//键盘下箭头处理(结束)--------------------------------------------------------
break;
case KeyEvent.VK_UP:
//键盘上箭头处理(在下面)-----------------------------------------------------
System.out.println( 能旋转吗());
if(能旋转吗())
{
旋转();
}
//键盘上箭头处理(结束)--------------------------------------------------------
break;
}
frame.repaint();
}
public void run()
{
while(true)
{
try
{
//定时时间间隔 timerThread.sleep(毫秒);
timerThread.sleep(300-50*ji);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
if(start==false)
return;
//定时处理(在下面)-----------------------------------------------------
if(能落吗())
{
落();
}
else
{
落实();
int xh=销行();
得分(xh);
升级();
造块();
造下块();
}
//定时处理(结束)--------------------------------------------------------
frame.repaint();
}
}
public class Screen extends JComponent
{
public void paint(Graphics g)
{
Graphics2D g2d= (Graphics2D)g;
//画图处理(在下面)-----------------------------------------------------
显示背景( g2d, this);
显示图( g2d, this);
显示块( g2d);
显示落实( g2d);
显示分( g2d);
显示级( g2d);
显示下块( g2d);
显示字(g2d);
if(能死吗())
{
游戏结束(g2d,this);
}
//画图处理(结束)--------------------------------------------------------
}
}
public static void main(String[] args)
{
new 俄罗斯方块();
}
void 显示背景(Graphics g2d,Screen s)
{
Image bj=(new ImageIcon("kk.PNG")).getImage();
g2d.drawImage(bj,0,0,s);
}
void 显示图(Graphics g2d,Screen s)
{
Image bj=(new ImageIcon("cc.PNG")).getImage();
g2d.drawImage(bj,11,110,s);
}
void 造块()
{
zhuanh=0;
zhuanl=6;
zhong=xiaKuai;
switch (zhong)
{
case 0:
luos[0][4]=0; luos[0][5]=1; luos[0][6]=1; luos[0][7]=1; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=0; luos[1][6]=1; luos[1][7]=0; luos[1][8]=0;
break;
case 1:
luos[0][4]=0; luos[0][5]=1; luos[0][6]=1; luos[0][7]=0; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=1; luos[1][6]=1; luos[1][7]=0; luos[1][8]=0;
break;
case 2:
luos[0][4]=0; luos[0][5]=0; luos[0][6]=1; luos[0][7]=1; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=1; luos[1][6]=1; luos[1][7]=0; luos[1][8]=0;
break;
case 3:
luos[0][4]=0; luos[0][5]=1; luos[0][6]=1; luos[0][7]=0; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=0; luos[1][6]=1; luos[1][7]=1; luos[1][8]=0;
break;
case 4:
luos[0][4]=0; luos[0][5]=1; luos[0][6]=1; luos[0][7]=1; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=1; luos[1][6]=0; luos[1][7]=0; luos[1][8]=0;
break;
case 5:
luos[0][4]=0; luos[0][5]=1; luos[0][6]=1; luos[0][7]=1; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=0; luos[1][6]=0; luos[1][7]=1; luos[1][8]=0;
break;
case 6:
luos[0][4]=1; luos[0][5]=1; luos[0][6]=1; luos[0][7]=1; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=0; luos[1][6]=0; luos[1][7]=0; luos[1][8]=0;
break;
case 7:
luos[0][4]=0; luos[0][5]=1; luos[0][6]=1; luos[0][7]=1; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=0; luos[1][6]=0; luos[1][7]=0; luos[1][8]=0;
break;
case 8:
luos[0][4]=0; luos[0][5]=1; luos[0][6]=1; luos[0][7]=1; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=1; luos[1][6]=0; luos[1][7]=1; luos[1][8]=0;
break;
case 9:
luos[0][4]=0; luos[0][5]=0; luos[0][6]=1; luos[0][7]=0; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=0; luos[1][6]=1; luos[1][7]=0; luos[1][8]=0;
break;
case 10:
luos[0][4]=0; luos[0][5]=0; luos[0][6]=1; luos[0][7]=0; luos[0][8]=0;
luos[1][4]=0; luos[1][5]=0; luos[1][6]=0; luos[1][7]=0; luos[1][8]=0;
break;
case 11:
luos[0][4]=0; luos[0][5]=1; luos[0][6]=1; luos[0][7]=1; luos[0][
评论0