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

📄 game.java

📁 用java面向对象的思想写的一个仿照windows下的那个蜘蛛纸牌的小游戏
💻 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 + -