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

📄 midmiddle.java

📁 俄罗斯小游戏,有友好界面,键盘控制,游戏加入了声音
💻 JAVA
字号:
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.math.*;
import java.awt.event.*;
import java.applet.AudioClip;
import java.applet.*;
import java.applet.Applet;
import java.net.URL;



class MidMiddle extends JPanel implements ActionListener
{ 


        static javax.swing.Timer q; 
        Icon icon1=new ImageIcon("11.jpg");
		Icon icon2=new ImageIcon("12.jpg");
		Icon icon3=new ImageIcon("21.jpg");
		Icon icon4=new ImageIcon("22.jpg");
		JLabel pictures1=new JLabel(icon1);
		JLabel pictures2=new JLabel(icon2);
		JLabel pictures3=new JLabel(icon3);
		JLabel pictures4=new JLabel(icon4);
		
		
	    Icon icon21=new ImageIcon("41.jpg");
		Icon icon22=new ImageIcon("42.jpg");
		Icon icon23=new ImageIcon("31.jpg");
		Icon icon24=new ImageIcon("32.jpg");
		JLabel pictures21=new JLabel(icon21);
		JLabel pictures22=new JLabel(icon22);
		JLabel pictures23=new JLabel(icon23);
		JLabel pictures24=new JLabel(icon24);
		
		
	    JLabel pictures11=new JLabel(icon1);
		JLabel pictures12=new JLabel(icon2);
		JLabel pictures13=new JLabel(icon3);
		JLabel pictures14=new JLabel(icon4);
  
        Icon icon5=new ImageIcon("Image2.jpg");
        Icon icon6=new ImageIcon("Image3.jpg");
        Icon icon7=new ImageIcon("Image4.jpg");
        Icon icon8=new ImageIcon("Image5.jpg"); 
	    JButton bu1=new JButton(icon5);
	    JButton bu2=new JButton(icon6);
	    JButton bu3=new JButton(icon7);
	    JButton bu4=new JButton(icon8);
	    
	        JLabel lblSpeed=new JLabel("Speed:");
	        String nums[]={"1","2","3","4","5","6","7","8","9"};
	        JComboBox speed=new JComboBox(nums);
	        JLabel lblScore=new JLabel("Score:");
	        JTextField txtScore=new JTextField();
	        JLabel lblNext=new JLabel("Next:");

       
	    static int i;
	    static int j;
	    static int choose[][]=new int[10][19];
	    Same diamond;
	    int next;
	    int now;
		String one="8.jpg";
		String two="9.jpg";
	    Image ones=Toolkit.getDefaultToolkit().getImage(one);
        Image twos=Toolkit.getDefaultToolkit().getImage(two);
		boolean canclear=false;
	    boolean ui=true;
	    boolean can;
	    int p,l,numb,del,z;
	    AudioClip sound[]=new AudioClip[4];
	    
//	   	AudioClip au=Applet.newAudioClip("drop.au");
	    
		
		public MidMiddle() 
		{
			this.setLayout(null);
		    this.setBackground(new Color(1,42,70));
		    this.addKeyListener(new KeyJudge());
		    pictures1.setBounds(0,31,21,298);
		    add(pictures1);
		    pictures2.setBounds(107,31,27,298);
		    add(pictures2);
		    pictures3.setBounds(0,0,134,31);
		    add(pictures3);
		    pictures4.setBounds(0,329,135,35);
		    add(pictures4);
		    pictures21.setBounds(134,24,18,318);
		    add(pictures21);
		    pictures22.setBounds(340,24,20,318);
		    add(pictures22);
		    pictures23.setBounds(134,0,224,24);
		    add(pictures23);
		    pictures24.setBounds(134,342,226,20);
		    add(pictures24);
		    pictures11.setBounds(358,31,21,298);
		    add(pictures11);
		    pictures12.setBounds(465,31,27,298);
		    add(pictures12);
		    pictures13.setBounds(358,0,134,31);
		    add(pictures13);
		    pictures14.setBounds(358,329,135,35);
		    add(pictures14);
		     bu1.setBounds(21,31,91,58);           
		     bu2.setBounds(21,89,91,90);          
		     bu3.setBounds(21,179,91,97);
		     bu4.setBounds(21,276,91,58);             
		     add(bu1);                                
		     bu1.addActionListener(this);
		     bu1.addKeyListener(new KeyJudge());       
		     add(bu2);
		     bu2.addActionListener(this);
		     bu2.addKeyListener(new KeyJudge());
		     add(bu3);
		     bu3.addActionListener(this);
	         add(bu4);
		     bu4.addActionListener(this);
		  
		    lblSpeed.setBounds(384,56,80,20);             
		    add(lblSpeed);
		    speed.setBounds(384,71,80,20);              
		    add(speed);
		    lblScore.setBounds(384,126,80,20);             
		    add(lblScore);
		    txtScore.setBounds(384,141,80,20);              
		    txtScore.setText("0");                        
		    add(txtScore);
		    txtScore.setEnabled(false);		              		
	    	lblNext.setBounds(384,196,80,20);             
	     	add(lblNext);
	   
	   
	   
	   try{
			
			sound[0]=Applet.newAudioClip(new URL("file:" + System.getProperty("user.dir") + "/"+"1.wav"));
			sound[1]=Applet.newAudioClip(new URL("file:" + System.getProperty("user.dir") + "/"+"chance.wav"));
			sound[2]=Applet.newAudioClip(new URL("file:" + System.getProperty("user.dir") + "/"+"down.wav"));
			sound[3]=Applet.newAudioClip(new URL("file:" + System.getProperty("user.dir") + "/"+"del.wav"));
			
	
		}catch(Exception e){
			JOptionPane.showMessageDialog(null,"打开音乐失败");
		} 
	     
	     	 
		    
		    for(i=0;i<10;i++)
		    {
		    	for(j=0;j<19;j++)
		    	{
		    		choose[i][j]=1;
		    	}
		    }
		   next=(((int)Math.round(Math.random()*10000))%7)+1; 
		}
		
		
	public void randomDiamonds()
	{
		
        now=next;                       
        switch(now)
        {	        
        	case 1: diamond= new OneDiamonds();break;
	      	case 2: diamond= new TwoDiamonds();break;
        	case 3: diamond= new ThreeDiamonds();break;
        	case 4: diamond= new FourDiamonds();break;
        	case 5: diamond= new FiveDiamonds();break;
        	case 6: diamond= new SixDiamonds();break;
        	case 7: diamond= new SevenDiamonds();break;        	
        }
	}
	
	

		  
  public void nextDiamonds(Graphics g)
	{
		String three="8.jpg";
		String four="9.jpg";
	    Image threes=Toolkit.getDefaultToolkit().getImage(three);
        Image fours=Toolkit.getDefaultToolkit().getImage(four);
		for(int i=0;i<4;i++)
		{
			for(int j=0;j<4;j++)
			{
				g.drawImage(threes,386+i*(15+2),230+j*(15+2),this);
			}
		}
			
			switch(next)                          
		{
			case 1:g.drawImage(fours,403,230,this);
			       g.drawImage(fours,403,247,this);
			       g.drawImage(fours,403,264,this);
			       g.drawImage(fours,403,281,this);
			       break;
			case 2:g.drawImage(fours,403,247,this);
			       g.drawImage(fours,420,247,this);
			       g.drawImage(fours,403,264,this);
			       g.drawImage(fours,420,264,this);
			       break;		
			case 3:g.drawImage(fours,420,230,this);
			       g.drawImage(fours,420,247,this);
			       g.drawImage(fours,401,247,this);
			       g.drawImage(fours,401,264,this);
			       break;
			case 4:g.drawImage(fours,403,230,this);
			       g.drawImage(fours,403,247,this);
			       g.drawImage(fours,420,247,this);
			       g.drawImage(fours,420,264,this);
			       break;
			case 5:g.drawImage(fours,403,230,this);
			       g.drawImage(fours,403,247,this);
			       g.drawImage(fours,403,264,this);
			       g.drawImage(fours,420,230,this);
			       break;
			case 6:g.drawImage(fours,402,230,this);
			       g.drawImage(fours,420,230,this);
			       g.drawImage(fours,420,247,this);
			       g.drawImage(fours,420,264,this);
			       break;
			case 7:g.drawImage(fours,386,246,this);
			       g.drawImage(fours,404,246,this);
			       g.drawImage(fours,404,263,this);
			       g.drawImage(fours,420,246,this);
			       break;
			default:break;
		}
	}
	
		
		public void paint(Graphics g)
		{
		    super.paint(g);
			for(i=0;i<10;i++)
			{
							for(j=0;j<19;j++)
				{
					if(choose[i][j]==1)
					{
						g.drawImage(ones,155+i*(16+2),30+j*(14+2),this);
						
				    }
				    if(choose[i][j]==2)
				    {
				    	g.drawImage(twos,155+i*(16+2),30+j*(14+2),this);
				    }
				}
		     }
		     nextDiamonds(g);
	    }
	    
	 public void actionPerformed(ActionEvent e)
   {
   	
   	if(e.getSource()==bu1)
   	{
   		sound[0].loop();
   	  can=true;
   	  p=speed.getSelectedIndex();
   	  q=new Timer(1000/(p+1),this);
   	  q.start();
   	  speed.setEnabled(false);
   	  if(ui==true)
   	  {
   	  	randomDiamonds();
   	  	diamond.begin();
   	  }
   
   	}
   	if(ui==true)
   	{
   		ui=false;
   		repaint();
   	
   	}
   	else
   	{
   		if(diamond.todown())
   		{
   			repaint();
   		}
   		else
   		{ 
   		  clear();
   		  randomDiamonds();
   		  if(!diamond.begin())
   		  {
   		  	q.stop();
   		  	JOptionPane.showMessageDialog(null,"Game over! 您的成绩是: " + txtScore.getText() + "分","游戏结束!",JOptionPane.INFORMATION_MESSAGE);
   		    ui=true;
   		    	for(int m=0;m<10;m++)
					{
						for(int n=0;n<20;n++)
						{
							choose[m][n]=1;
						}
					}
					repaint();
   		  }
   		  repaint();
   		  next=(((int)Math.round(Math.random()*10000))%7)+1;	
   		}
   	}
  
   	  if(e.getSource()==bu2)
   	  	{
   	  		sound[0].stop();
   	  	 q.stop();
   	  	 speed.setSelectedIndex(0);
   	  	 txtScore.setText("0");
   	  	 speed.setEnabled(true);
   	  	 for(int mi=0;mi<10;mi++)
   	  	 {
   	  	 	for(int ni=0;ni<19;ni++)
   	  	 	{
   	  	 		choose[mi][ni]=1;
   	  	 	}
   	  	 }
   	  	 ui=true;
   	  	 repaint();
   	  	}
   	  	if(e.getSource()==bu3)
   	  	{
   	  		sound[0].stop();
   	  		can=false;
   	  		repaint();
   	  		q.stop();
   	  	}	
   if(e.getSource()==bu4)
   {
   	
   	JOptionPane.showMessageDialog(null,"← : 左移 → : 右移 ↓ : 下到底 ↑ : 变形\n","帮助文档",JOptionPane.INFORMATION_MESSAGE);
			    	
   }
   }
	  

	
	
	public void clear()
	{
	   for(int h=18;h>=0;h--)
	   {
	   	for(int j=0;j<10;j++)
	   	{
	   		if(choose[j][h]==2)
	   		{
	   			numb++;
	   		}
	   	}
	   	if(numb==10)
	   	{
	   		del++;
	   		for(int k=0;k<10;k++)
	   		{
	   			for(int r=h;r>1;r--)
	   			{
	   				   choose[k][r]=choose[k][r-1];
	   			        repaint();
	   			        sound[3].play();
	   			}
	   				
	   	     }
	   	     h++;
	   	  }
	   	numb=0;
	   	repaint();
	   }
	   repaint();
	   switch(del)
	   {
	   	case 1:
	   	l=Integer.parseInt(txtScore.getText());              
		l+=100;								    					
		txtScore.setText(l +""); 
		break;
		case 2:
		l=Integer.parseInt(txtScore.getText());              
		l+=300;								    					
		txtScore.setText(l +"");
		break;
		case 3:
	    l=Integer.parseInt(txtScore.getText());              
		l+=500;								    					
		txtScore.setText(l +"");
		break;
		case 4:
	    l=Integer.parseInt(txtScore.getText());              
		l+=1000;								    					
		txtScore.setText(l +"");
		break;
	   }
	   del=0;
	   	int d=Integer.parseInt(txtScore.getText());       
		d/=10000;
		if(d>0)
		{
			q.stop();
			d+=p;
			if(d>=8)
			{
				d=8;
			}
			q=new Timer(1000/d,this);
			q.start();
			speed.setSelectedIndex(d);
		}
	   	
	}
	
	    
	
	
	   	  



	class KeyJudge extends KeyAdapter
	{	
	   	
		public void keyPressed(KeyEvent k)
		{			
		 	if(can)
		 	{	
				switch(k.getKeyCode())
				{
				    case KeyEvent.VK_DOWN:           
					{
						if(diamond.todown())
					     repaint();
                   //      sound[2].play();
						break;
					}
				    case KeyEvent.VK_LEFT:         
				    {
				    	diamond.toleft();
				    	repaint();
				    	break;
				    }
				    case KeyEvent.VK_RIGHT:        
				    {
				    	diamond.toright();
				    	repaint();
				    	break;
				    }
				    case KeyEvent.VK_UP:             
				    {			    	
				    	diamond.chance();
				    	repaint();
				    	sound[1].play();
				    	break;
				    }
				    
					case KeyEvent.VK_ESCAPE:
					{
						System.exit(0);
				}
				}
			}
			}
			}
}






 

⌨️ 快捷键说明

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