⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chuangti.java~5~

📁 一个使用JB9编写的网络俄罗斯方块,大家可以下载如有不足还请原谅,有是可以给我EMAIL
💻 JAVA~5~
📖 第 1 页 / 共 2 页
字号:
package one_piece;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.awt.KeyboardFocusManager;
import java.net.*;
import java.io.*;
import javax.swing.border.*;

public class CHUANGTI extends JFrame implements Runnable {//窗体主类,游戏的引擎。
  JPanel contentPane;//用JPanel声名一个变量
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JButton jButton3 = new JButton();
  JButton jButton4 = new JButton();

  Panel Mine = new Panel();
  Panel Rival = new Panel();
  YuLan yulan = new YuLan();
  KeyboardFocusManager KeyFocus ;
  XYLayout xYLayout1 = new XYLayout();
  ImageIcon kuai;
  //控制自己游戏区域的数组
  public static   int[][] mine = new int[10][20];
  //控制对手游戏区域的数组
  public static   int[][] ravil = new int[10][20];
  //生成新的方块
  Kuai  m_prePiece[] = new Kuai[4];
  //储存用的方块
  Kuai  m_curPiece[] = new Kuai[4];
  //用来存储游戏中的方块图片
  ImageIcon[]  tukuai= new ImageIcon[10];
  //存储游戏速度
  public  static  int thespeed = 7;
  //存储玩家分数
  public  static   long  Score;
  //游戏是否在进行
  boolean IsGameInPlay;
  //是否要产生新方块
  boolean IsNeedNewPiece;
  //游戏是否暂停
  boolean Paused=false;
  //延迟时间
  int DelayMap[]={600,600,550,550,500,400,300,250,200,150,100};
  //线程
  //Thread  theThread = null;
  Thread  theThread;
  //改变thespeed用的形参
  int value;
  //转换value用的
  String  valuestr;
  JSlider jSlider1 = new JSlider();
  JLabel jLabel1 = new JLabel(new ImageIcon("Mine2.gif"));
   JLabel jLabel2 = new JLabel(new ImageIcon("zpbeijing2.gif"));

  JScrollPane jScrollPane1 = new JScrollPane();
  JTextField jTextField1 = new JTextField();
  ServerSocket server;
  Socket client;
  InputStream in;
  OutputStream out;
  Thread   Server = new  Thread(this);
  Thread Clinet = new  Thread(this);
  JButton jButton5 = new JButton();
  JButton jButton6 = new JButton();
  JLabel jLabel3 = new JLabel(new ImageIcon ("yulan.gif"));
  Border border1;
  Border border2;
  Border border3;
  Border border4;
  JTextArea jTextArea1 = new JTextArea();
  Border border5;
  JLabel jLabel4 = new JLabel();
  public CHUANGTI() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
      myinit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    border1 = new MatteBorder(null);
    border2 = new MatteBorder(null);
    border3 = new MatteBorder(null);
    border4 = new MatteBorder(null);
    border5 = BorderFactory.createMatteBorder(6,6,6,6,Color.black);
    contentPane.setLayout(xYLayout1);
    this.setSize(new Dimension(1024, 768));
    this.setTitle("ONE PIECE");
    jButton1.setBackground(Color.red);
    jButton1.setFont(new java.awt.Font("Dialog", 0, 15));
    jButton1.setBorder(border1);
    jButton1.setDebugGraphicsOptions(0);
    jButton1.setBorderPainted(true);
    jButton1.setDisabledIcon(null);
    jButton1.setDisabledSelectedIcon(null);
    jButton1.setIcon(new ImageIcon(new java.net.URL("file:///E:/Picture/kaishi.gif")));
    jButton1.setText("开始");
    jButton1.addActionListener(new CHUANGTI_jButton1_actionAdapter(this));
    jButton2.setBackground(Color.red);
    jButton2.setFont(new java.awt.Font("Dialog", 0, 15));
    jButton2.setBorder(border2);
    jButton2.setIcon(new ImageIcon(new java.net.URL("file:///E:/Picture/tuichu.gif")));
    jButton2.setMargin(new Insets(2, 14, 2, 14));
    jButton2.setText("退出");
    jButton2.addActionListener(new CHUANGTI_jButton2_actionAdapter(this));
    Mine.addKeyListener(new CHUANGTI_Mine_keyAdapter(this));
    jButton3.setBackground(Color.red);
    jButton3.setFont(new java.awt.Font("Dialog", 0, 15));
    jButton3.setBorder(border4);
    jButton3.setIcon(new ImageIcon(new java.net.URL("file:///E:/Picture/jieshu.gif")));
    jButton3.setText("结束");
    jButton3.addActionListener(new CHUANGTI_jButton3_actionAdapter(this));
    jButton4.setBackground(Color.red);
    jButton4.setFont(new java.awt.Font("Dialog", 0, 15));
    jButton4.setAlignmentY((float) 0.5);
    jButton4.setBorder(border3);
    jButton4.setIcon(new ImageIcon(new java.net.URL("file:///E:/Picture/zanting.gif")));
    jButton4.setText("暂停");
    jButton4.addActionListener(new CHUANGTI_jButton4_actionAdapter(this));
    jSlider1.setMaximum(15);
    jSlider1.setMinorTickSpacing(1);
    jSlider1.setBackground(Color.red);
    jSlider1.addMouseListener(new CHUANGTI_jSlider1_mouseAdapter(this));
    jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    jScrollPane1.setBorder(border5);
    jTextField1.setText("jTextField1");
    jTextField1.addActionListener(new CHUANGTI_jTextField1_actionAdapter(this));
    jButton5.setText("jButton5");
    jButton5.addActionListener(new CHUANGTI_jButton5_actionAdapter(this));
    jButton6.setText("jButton6");
    jButton6.addActionListener(new CHUANGTI_jButton6_actionAdapter(this));
    jTextArea1.setBackground(Color.red);
    jTextArea1.setText("jTextArea1");
    jLabel4.setIcon(new ImageIcon(new java.net.URL("file:///E:/Picture/Mine.gif")));
    contentPane.add(Mine,   new XYConstraints(12, Mine.sqlenth*12+10, -1, -1));
    contentPane.add(Rival,   new XYConstraints(Mine.sqlenth*26,  Mine.sqlenth*12+10, -1, -1));
    Rival.add(jLabel4, new XYConstraints(0, 0, -1, -1));
    contentPane.add(yulan ,new XYConstraints(Mine.sqlenth*19+3, Mine.sqlenth*11+13, -1, -1));
    Mine.add(jLabel1,  new XYConstraints(0, 0, -1, -1));
    yulan.add(jLabel3, new XYConstraints(0, 0, -1, -1));
    contentPane.add(jButton6, new XYConstraints(953, 470, 68, 33));
    contentPane.add(jTextField1,  new XYConstraints(742, 476, 205, 26));
    contentPane.add(jButton5, new XYConstraints(952, 400, 71, 33));
    contentPane.add(jSlider1,      new XYConstraints(762, 394, 170, 54));
    contentPane.add(jScrollPane1,    new XYConstraints(739, 241, 268, 85));
    contentPane.add(jButton1,  new XYConstraints(636, 44, 108, 43));
    contentPane.add(jButton4,  new XYConstraints(906, 39, 106, 35));
    contentPane.add(jButton3, new XYConstraints(907, 149, 100, 38));
    contentPane.add(jButton2, new XYConstraints(634, 152, 106, 36));
    contentPane.add(jLabel2,  new XYConstraints(0, 0, -1, -1));
    jScrollPane1.getViewport().add(jTextArea1, null);
    tukuai[0] = new ImageIcon(new java.net.URL("file:///E:/Picture/touming.gif"));
    tukuai[1] = new ImageIcon(new java.net.URL("file:///E:/Picture/tu1.gif"));
    tukuai[2] = new ImageIcon(new java.net.URL("file:///E:/Picture/tu2.gif"));
    tukuai[3] = new ImageIcon(new java.net.URL("file:///E:/Picture/tu3.gif"));
    tukuai[4] = new ImageIcon(new java.net.URL("file:///E:/Picture/tu4.gif"));
    tukuai[5] = new ImageIcon(new java.net.URL("file:///E:/Picture/tu5.gif"));
    tukuai[6] = new ImageIcon(new java.net.URL("file:///E:/Picture/tu6.gif"));
    tukuai[7] = new ImageIcon(new java.net.URL("file:///E:/Picture/tu6.gif"));
    tukuai[8] = new ImageIcon(new java.net.URL("file:///E:/Picture/tu7.gif"));
    tukuai[9] = new ImageIcon(new java.net.URL("file:///E:/Picture/tu8.gif"));

  }
  private void myinit()
  {
    try{
      // kuai = new ImageIcon(new java.net.URL("file:///E:/Picture/money1.gif"));

   } catch(Exception e){}
  }
  private void newPrePiece()
{
     int middle=Mine.Comln/2;  //5
     int top=Mine.Row; //20
     int i;
   switch((int)(Math.random()*7))
     {//Math.ramdom 产生0--1的数
     case 0:
      //XXXX  red;
        // m_nPieceValue=100;
        /*
         X X X X
        */
         m_prePiece[0]=new Kuai(middle-1,top-1,1);
         m_prePiece[1]=new Kuai(middle-2,top-1,1);
         m_prePiece[2]=new Kuai(middle,top-1,1);
         m_prePiece[3]=new Kuai(middle+1,top-1,1);
         for(i = 0;i<4;i++)
        {
     yulan.SetIcon(m_prePiece[i].m_nColumn-3,m_prePiece[i].m_nRow-18,tukuai[m_prePiece[i].m_ntupian]);
     //SetIcon的意思???????
       }
         break;
        case 1:
        // X orange;
             //XX
        // m_nPieceValue=200;
        /***
            X
        X X X
        */
          m_prePiece[0]=new  Kuai(middle-1,top-1,1);
          m_prePiece[1]=new  Kuai(middle-2,top-1,1);
          m_prePiece[2]=new  Kuai(middle,top-1,1);
          m_prePiece[3]=new Kuai(middle,top-2,1);
          for(i = 0;i<4;i++)
            {
              yulan.SetIcon(m_prePiece[i].m_nColumn-3,m_prePiece[i].m_nRow-18,tukuai[m_prePiece[i].m_ntupian]);
            }
         break;
         case 2:
             //XX  green;
        // m_nPieceValue=180;
                 /****
            X  X
         X  X
                  ****/
         m_prePiece[0]=new Kuai(middle,top-2,2);
         m_prePiece[1]=new Kuai(middle-1,top-1,2);
         m_prePiece[2]=new Kuai(middle,top-1,2);
         m_prePiece[3]=new Kuai(middle+1,top-2,2);
         for(i = 0;i<4;i++)
       {
         yulan.SetIcon(m_prePiece[i].m_nColumn-3,m_prePiece[i].m_nRow-18,tukuai[m_prePiece[i].m_ntupian]);

       }
         break;
         case 3:
            //XX  blue;
        // m_nPieceValue=180;

                 /****
        X
        X  X  X
              *****/
         m_prePiece[0]=new  Kuai(middle,top-1,4);
         m_prePiece[1]=new  Kuai(middle+1,top-1,4);
         m_prePiece[2]=new  Kuai(middle-1,top-1,4);
         m_prePiece[3]=new  Kuai(middle-1,top-2,4);
         for(i = 0;i<4;i++)
     {
       yulan.SetIcon(m_prePiece[i].m_nColumn-3,m_prePiece[i].m_nRow-18,tukuai[m_prePiece[i].m_ntupian]);
     }
         break;
         case 4:
             //XX  light blue;
       //  m_nPieceValue=100;

                    /***
        X X
          X X
                   */
          m_prePiece[0]=new  Kuai(middle,top-2,7);
          m_prePiece[1]=new  Kuai(middle+1,top-1,7);
          m_prePiece[2]=new  Kuai(middle,top-1,7);
          m_prePiece[3]=new  Kuai(middle-1,top-2,7);
          for(i = 0;i<4;i++)
     {
       yulan.SetIcon(m_prePiece[i].m_nColumn-3,m_prePiece[i].m_nRow-18,tukuai[m_prePiece[i].m_ntupian]);
     }
         break;
         case 5:
             //XXX  purle;
        // m_nPieceValue=120;
                   /****
        X  X
        X  X
         */
        m_prePiece[0]=new  Kuai(middle-1,top-1,3);
        m_prePiece[1]=new  Kuai(middle,top-1,3);
        m_prePiece[2]=new  Kuai(middle-1,top-2,3);
        m_prePiece[3]=new  Kuai(middle,top-2,3);
        for(i = 0;i<4;i++)
     {
       yulan.SetIcon(m_prePiece[i].m_nColumn-3,m_prePiece[i].m_nRow-18,tukuai[m_prePiece[i].m_ntupian]);
     }
         break;
         case 6:
             //XXX  yellow;
        // m_nPieceValue=120;
        /********
           X
         X X X
        */
         m_prePiece[0]=new  Kuai(middle,top-1,6);
         m_prePiece[1]=new  Kuai(middle-1,top-1,6);
         m_prePiece[2]=new  Kuai(middle+1,top-1,6);
         m_prePiece[3]=new  Kuai(middle+1,top-2,6);
         for(i = 0;i<4;i++)
           {
             yulan.SetIcon(m_prePiece[i].m_nColumn-3,m_prePiece[i].m_nRow-18,tukuai[m_prePiece[i].m_ntupian]);
           }
         break;
     }
}
  private void transferPreToCur()
   {
      for(int j = 0;j<4;j++)
      {
      if(mine[m_prePiece[j].m_nColumn][m_prePiece[j].m_nRow] !=0 )
      IsGameInPlay = false;
      for(int i=0;i<4;i++)
       {
         //用类定义的变量如同int 定义的可这样赋值
         m_curPiece[i]=m_prePiece[i];
       }
      for(int i=0;i<4;i++)
        {
          mine[m_curPiece[j].m_nColumn][m_curPiece[j].m_nRow]  = m_curPiece[j].m_ntupian;
          Mine.SetIcon(m_curPiece[j].m_nColumn,m_curPiece[j].m_nRow,tukuai[ m_curPiece[j].m_ntupian ]);

        }
      }
    }
/**********************************************************************/
    private synchronized boolean moveCurPiece(int nDx,int nDy,boolean bRotate)
   {
   Kuai newpos[] = new Kuai[4];
   int dx , dy;
       for (int i = 0; i < 4; i++)
       {
         if (bRotate)
         {
           dx = m_curPiece[i].m_nColumn - m_curPiece[0].m_nColumn;
           dy = m_curPiece[i].m_nRow - m_curPiece[0].m_nRow;
           newpos[i] = new Kuai(m_curPiece[0].m_nColumn - dy,
                                m_curPiece[0].m_nRow + dx,
                                m_curPiece[i].m_ntupian);
           //顺时针转动
         }
         else
         {
           newpos[i] = new Kuai(m_curPiece[i].m_nColumn + nDx,
                                m_curPiece[i].m_nRow + nDy,
                                m_curPiece[i].m_ntupian);
         }
       }
    if (moveSquares(m_curPiece, newpos) == false)
         return false;
       for(int i = 0; i < 4; i++)
         {
            m_curPiece[i] = newpos[i];
             }
       for(int i = 0; i < 4; i++)
         {
          Mine.SetIcon(m_curPiece[i].m_nColumn,m_curPiece[i].m_nRow,tukuai[m_curPiece[i].m_ntupian]);
              }
       return true;
   }
   /**
    ************************************************* 移动方块,如果不能移动,则返回假
    */
  boolean moveSquares(Kuai from[],Kuai to[])
   { //判断是否能移动
          outerlable:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -