📄 chuangti.java~5~
字号:
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 + -