www.pudn.com > SOFT.rar > Game.java
//Game.java
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.JOptionPane;
public class Game extends JFrame {
JPanel contentPane;
private GameTable gTable;
//从本地加载图像
private Image img0,img1;
//自动生产图像
private int[] im0;
private int[] im1;
private JButton btStart,btRestart;
private int nWhich;
private int nNext;
private Timer timer;
private int nTime=500;
private JLabel scoreLabel;
private int nScore=0;
boolean canMove=false;
private Root root;
private JMenuBar jMenuBar= new JMenuBar();
private JMenu jFile=new JMenu();
private JMenuItem jStart=new JMenuItem();
private JMenuItem jExit=new JMenuItem();
private JMenu jOption =new JMenu();
private JCheckBoxMenuItem jOptLow=new JCheckBoxMenuItem();
private JCheckBoxMenuItem jOptMiddle=new JCheckBoxMenuItem();
private JCheckBoxMenuItem jOptHigh=new JCheckBoxMenuItem();
private JMenu jHelp=new JMenu();
private JMenuItem jAbout =new JMenuItem();
public Game(){
super("俄罗斯方块");
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(null);
setBounds(130,60,520,500);
scoreLabel=new JLabel("0");
scoreLabel.setBounds(400,300,50,50);
btStart =new JButton("开始");
btRestart=new JButton("重新开始");
btStart.setBounds(360,200,75,40);
btRestart.setBounds(360,260,80,40);
btStart.setToolTipText("游戏开始");
btRestart.setToolTipText("重新开始游戏");
contentPane.add(btStart,null);
contentPane.add(btRestart,null);
contentPane.add(scoreLabel,null);
//自己生产图像
im0=new int[15*15];
im1=new int[15*15];
for(int i=0;i<15*15;i++)
{
im0[i]=0xffffffff;
int red,green,blue;
red=(int)(Math.random()*255);
green=255-red;
im1[i]=i<<24|red<<16|green<<16|255;
if(red==green)
{
System.out.println("ok");
}
}
ImageProducer ip0=new MemoryImageSource(15,15,im0,0,15);
img0=createImage(ip0);
ImageProducer ip1=new MemoryImageSource(15,15,im1,0,15);
img1=createImage(ip1);
/*
//也可以通过加载图像来进行显示
MediaTracker tracker = new MediaTracker(this);
img0=Toolkit.getDefaultToolkit().getImage("b0.jpg");
img1=Toolkit.getDefaultToolkit().getImage("b1.jpg");
tracker.addImage(img0,0);
tracker.addImage(img1,1);
//等待图像的完全加载
try{
tracker.waitForID(0);
}catch(InterruptedException e2){ e2.printStackTrace();}
try{
tracker.waitForID(1);
}catch(InterruptedException e2){ e2.printStackTrace();}
*/
//得到图像的高度和宽度
/*
int iw0=img0.getWidth(this);
int ih0=img0.getHeight(this);
int iw1=img1.getWidth(this);
int ih1=img1.getHeight(this);
System.out.println("the b0:"+iw0+" "+ih0);
System.out.println("the b1:"+iw1+" "+iw1);
*/
//初始化游戏桌
gTable.x=15;
gTable.y=20;
gTable.myTable=new int[gTable.x][gTable.y];
for(int i=0;i=0;j--)
for(int i=0;i