📄 midmiddle.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 + -