📄 environment.java
字号:
package src;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.*;
import java.util.Timer;
import java.util.TimerTask;
/**游戏的主环境,里面包含了所有游戏信息*/
public class environment
{
/*private*/
GameFrame _game;//游戏主界面
StatusFrame _status;//游戏状态界面
GameMenu _menu;//菜单条
JFrame _main;//主窗口
Container contentPane;
Timer clock;//内部时钟
clockUpdate updateGenerator;
int inited = 0 , running = 0;
// private Player _player;
/*unchange*/
String gameName = "打地鼠";
String path;
int score = 0;
int nowTime = 0;//记录时间的嘀嗒数
int miceNum = 0;//地鼠的数量
int picNum = 0;//背景图象的编号
int timeLength = 60;//游戏的时间长度
/*.............*/
public environment(){
_main = new JFrame(gameName);
contentPane = _main.getContentPane();
_main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
_menu = new GameMenu(this);//菜单栏要先初始化
_main.setJMenuBar(_menu);
path = System.getProperty("user.dir");
System.out.println(path);
/*full screen*/
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
if(gd.isFullScreenSupported())
gd.setFullScreenWindow(_main);
else{
System.out.println("Unsupported full screen.");
}
}
//主界面组件初始化
public void init(){
_game = new GameFrame(this);
_status = new StatusFrame(this);
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,_game,_status);
splitPane.setDividerLocation(800);
splitPane.setDividerSize(10);
contentPane.add(splitPane);
repaint();
try{
_game.init();
_status.init();
}
catch(Exception ex){
System.out.println("error in init;" + getStatus());
}
inited = 1;
}
//要求全局更新时发起所有的更新通知
public void update(){
_status.repaint();
}
//让游戏正式开始
public void run(){
running = 1;
nowTime = 0;
score = 0;
clock = new Timer();
updateGenerator = new clockUpdate(this);
clock.schedule(updateGenerator,10,1000);
_game.run();
}
public void repaint(){
_main.validate();
_game.repaint();
_status.repaint();
}
public String getStatus(){
return "Score=" + String.valueOf(score) + " nowTime=" + String.valueOf(nowTime) + " miceNum="
+ String.valueOf(miceNum) + " picNum" + String.valueOf(picNum) + " timeLength=" + String.valueOf(timeLength);
}
public void gameEnd(){
_game.gameEnd();
nowTime = 0;
score = 0;
running = 0;
System.out.println("in env" + getStatus());
}
}
/**后台时钟触发事件*/
class clockUpdate extends TimerTask
{
environment env;
clockUpdate(environment temp){
env = temp;
}
//每一秒触发的时间
public void run(){
env.nowTime++;
updateTime();
CheckTime();
}
//固定的时间触发的时间
public void CheckTime(){
if(env.nowTime == env.timeLength){
env._status.gameStart.setEnabled(true);
cancel();
env.gameEnd();
}
}
public boolean cancel(){
System.out.println(" i am canceled");
super.cancel();
return true;
}
//游戏时间更新
public void updateTime(){
env._status.timeBar.setValue(env.nowTime);
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -