📄 game.java
字号:
package turing;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import javax.swing.*;
public class Game extends KeyAdapter implements Runnable, MouseListener,MouseMotionListener
{
//定义变量(在下面)-----------------------------------------------------
private Fu fu;
private Chuan[] chuans;
private Lin lin;
private Chuan congChuan;
private Chuan daoChuan;
//定义变量(结束)--------------------------------------------------------
JFrame frame;
Thread timerThread;
boolean start=false;
Game()
{
//构造初始(在下面)-----------------------------------------------------
congChuan=null;
daoChuan=null;
lin=null;
fu=new Fu();
fu.xi();
chuans=new Chuan[10] ;
for(int i=0;i<10;i++)
{
chuans[i]=new Chuan(i);
}
for(int i=0;i<10;i++)
{
for(int lun=0;lun<5;lun++)
{
Zhang z=fu.fa();
chuans[i].jiaZhang(z);
}
chuans[i].fanMoZhang();
}
//构造初始(结束)--------------------------------------------------------
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(1024, 740);
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)
{
//鼠标左键
if (e.getButton()==MouseEvent.BUTTON1)
{
//鼠标位置
int mx=e.getX();
int my=e.getY();
//鼠标左键处理(在下面)-----------------------------------------------------
if(lin==null)
{
for(int i=0;i<10;i++)
{
if(chuans[i].anWo(mx,my) )
{
congChuan=chuans[i];
if(congChuan.nengLin(mx,my) )
{
lin=congChuan.linQi(mx,my);
}
else
{
congChuan=null;
}
}
}
}
else
{
for(int i=0;i<10;i++)
{
if(chuans[i].anWo(mx,my) )
{
daoChuan=chuans[i];
if(daoChuan.nengFang(lin) )
{
daoChuan.bingRu(lin);
congChuan.fanMoZhang();
congChuan=null;
}
else
{
congChuan.huiGui(lin);
daoChuan=null;
}
}
}
lin=null;
}
//鼠标左键处理(结束)--------------------------------------------------------
}
//鼠标右键
else if (e.getButton() == MouseEvent.BUTTON3)
{
// 鼠标位置
int mx = e.getX();
int my = e.getY();
// 鼠标右键处理(在下面)-----------------------------------------------------
for (int i = 0; i < 10; i++)
{
if (fu.getAl().size() > 0)
{
Zhang z = fu.fa();
z.setZhengFan(true);
chuans[i].jiaZhang(z);
}
}
//鼠标右键处理(结束)--------------------------------------------------------
}
frame.repaint();
}
//鼠标移动
public void mouseMoved(MouseEvent e)
{
//鼠标位置
int mx=e.getX();
int my=e.getY();
//鼠标左键处理(在下面)-----------------------------------------------------
//鼠标左键处理(结束)--------------------------------------------------------
frame.repaint();
}
public void keyPressed(KeyEvent evt)
{
//键盘处理
switch(evt.getKeyCode())
{
case KeyEvent.VK_ENTER:
timerThread = new Thread(this);
timerThread.start();
start = true;
break;
case KeyEvent.VK_ESCAPE:
start = false;
System.exit(1);
break;
case KeyEvent.VK_LEFT:
//键盘左箭头处理(在下面)-----------------------------------------------------
//键盘左箭头处理(结束)--------------------------------------------------------
break;
case KeyEvent.VK_RIGHT:
//键盘右箭头处理(在下面)-----------------------------------------------------
//键盘右箭头处理(结束)--------------------------------------------------------
break;
case KeyEvent.VK_DOWN:
//键盘下箭头处理(在下面)-----------------------------------------------------
//键盘下箭头处理(结束)--------------------------------------------------------
break;
case KeyEvent.VK_UP:
//键盘上箭头处理(在下面)-----------------------------------------------------
//键盘上箭头处理(结束)--------------------------------------------------------
break;
}
frame.repaint();
}
public void run()
{
while(true)
{
try
{
//定时时间间隔 timerThread.sleep(毫秒);
timerThread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
if(start==false)
return;
//定时处理(在下面)-----------------------------------------------------
//定时处理(结束)--------------------------------------------------------
frame.repaint();
}
}
class Screen extends JComponent
{
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
//画图处理(在下面)-----------------------------------------------------
if(fu.getAl().size()>0)
{
fu.xianShi(g2d,this);
}
for(int i=0;i<10;i++)
{
chuans[i].xianShi(g2d,this);
}
if(lin!=null)
{
lin.xianShi(g2d,this,400,500);
}
//画图处理(结束)--------------------------------------------------------
}
}
public static void main(String[] args)
{
new Game();
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -