(){
public void windowClosing(WindowEvent we){
stopGame();
System.exit(0);
}
});
addComponentListener(new ComponentAdapter(){
public void componentResized(ComponentEvent ce){
canvas.fanning();
}
});
show();
canvas.fanning();
}
//让游戏“复原”
public void reset(){
ctrlPanel.reset();
canvas.reset();
}
//判断游戏是否在进行
public boolean isPlaying(){
return playing;
}
public ErsBlock getCurBlock(){
return block;
}
public GameCanvas getCanvas(){
return canvas;
}
//开始游戏
public void playGame(){
play();
ctrlPanel.setPlayButtonEnable(false);
miPlay.setEnabled(false);
ctrlPanel.requestFocus();
}
//游戏暂停
public void pauseGame(){
if(block!=null)block.pauseMove();
ctrlPanel.setPauseButtonLabel(false);
miPause.setEnabled(false);
miResume.setEnabled(true);
}
//让停止的游戏继续
public void resumeGame(){
if(block!=null)block.resumeMove();
ctrlPanel.setPauseButtonLabel(true);
miPause.setEnabled(true);
miResume.setEnabled(false);
ctrlPanel.requestFocus();
}
//用户停止游戏
public void stopGame(){
playing = false;
if(block!=null)block.stopMove();
miPlay.setEnabled(true);
miPause.setEnabled(true);
miResume.setEnabled(false);
ctrlPanel.setPlayButtonEnable(true);
ctrlPanel.setPauseButtonLabel(true);
}
//接受游戏者设置的游戏难度
public int getLevel(){
return ctrlPanel.getLevel();
}
//游戏者设置游戏难度
public void setLevel(int level){
if(level<11&;&;level>0)ctrlPanel.setLevel(level);
}
//得到游戏积分
public int getScore(){
if(canvas!=null)return canvas.getScore();
return 0;
}
//得到自上次升级以来的积分,升级以后,此积分为0
public int getScoreForLevelUpdate(){
if(canvas!=null)return canvas.getScoreForLevelUpdate();
return 0;
}
//当分数达到一定数量时,升级
public boolean levelUpdate(){
int curLevel=getLevel();
if(curLevel
L){
setLevel (curLevel+1);
canvas.resetScoreForLevelUpdate();
return true;
}
return false;
}
//游戏开始
private void play(){
reset();
playing = true;
Thread thread = new Thread(new Game());
thread.start();
}
//报告游戏结束
private void reportGameOver(){
JOptionPane.showMessageDialog(this,"Game Over!");
}
//建立并设置窗口菜单
private void createMenu(){
bar.add(mGame);
bar.add(mControl);
bar.add(mWindowStyle);
bar.add(mInfo);
mGame.add(miNewGame);
mGame.addSeparator();
mGame.add(miSetBlockColor);
mGame.add(miSetBackColor);
mGame.addSeparator();
mGame.add(miTurnHarder);
mGame.add(miTurnEasier);
mGame.addSeparator();
mGame.add(miExit);
mControl.add(miPlay);
mControl.add(miPause);
mControl.add(miResume);
mControl.add(m