?? metalmax.java
字號:
/**********************************************************
File name:MetalMaxMedlet.java
Author:夏文濤
Version:Beta1.0
Data:2007/10/16
Description:
游戲的medlet,進行各種進入游戲前的菜單顯示處理
Function List:
1.splashScreenPainted(boolean) 進入閃屏界面
2.splashScreenDone() 閃屏界面顯示完畢
3.menuListNewGame() 開始新游戲
4.GameCanvasMenu() 返回medlet,游戲暫停
5.menuListContinue() 游戲繼續
6.menuListInstructions() 進入顯示游戲介紹界面
7.instructionsBack() 游戲介紹顯示完畢
8.menuListRecord() 進入顯示記錄界面
9.RecordBack() 記錄界面顯示完畢
10.menuListQuit() 退出菜單選擇,游戲結束
11.GameCanvasGameOver() 顯示游戲結束界面
12.gameOverDone() 游戲結束界面顯示完畢
13.flashBacklight() 手機閃屏效果
14.vibrate() 手機震動效果
*********************************************************/
package com.Izual.MetalMax;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class MetalMax extends MIDlet implements Runnable,IData {
private MenuList menuList;
private MetalMaxCanvas myCanvas;
private boolean initDone = false;
/*
* 游戲記錄,DEMO中由于時間問題還未實現
private static final String RS_NAME = "MetalMaxRecord";
*/
public MetalMax() {
}
protected void destroyApp(boolean arg0) {
if (myCanvas != null) {
myCanvas.stop();
}
}
protected void pauseApp() {
Displayable current = Display.getDisplay(this).getCurrent();
if (current == myCanvas) {
myCanvas.stop();
}
}
protected void startApp() throws MIDletStateChangeException {
//獲取系統時間
Runtime rt = Runtime.getRuntime();
//獲取游戲開始前的內存情況
long diffstart = rt.totalMemory() - rt.freeMemory();
System.out.println("Memory used Start:" + diffstart);
Displayable current = Display.getDisplay(this).getCurrent();
//如果游戲剛啟動,則開始閃屏界面
if (current == null) {
Display.getDisplay(this).setCurrent(new SplashScreen(this));
} else {/*否則進入游戲*/
if (current == myCanvas) {
myCanvas.start();
}
Display.getDisplay(this).setCurrent(current);
}
/*游戲后內存變化情況*/
long diffend = rt.totalMemory() - rt.freeMemory();
System.out.println("Memory used End:" + diffend);
System.out.println("Memory used after operation:"
+ (diffend - diffstart));
}
/*進入閃屏界面*/
void splashScreenPainted() {
new Thread(this).start();
}
/*線程運行*/
public void run() {
init();
}
/*同步的初始化方法*/
private synchronized void init() {
if (!initDone) {
SoundEffects.getInstance();
menuList = new MenuList(this);
myCanvas = new MetalMaxCanvas(this);
initDone = true;
}
}
/*閃屏結束,返回到菜單選擇*/
void splashScreenDone() {
init();
Display.getDisplay(this).setCurrent(menuList);
}
/*開始新游戲*/
public void menuListNewGame() {
myCanvas.init(START_MAP);
Display.getDisplay(this).setCurrent(myCanvas);
myCanvas.start();
}
/*游戲暫停*/
public void GameCanvasMenu() {
myCanvas.stop();
menuList.setGameActive(true);
Display.getDisplay(this).setCurrent(menuList);
}
/*游戲繼續*/
public void menuListContinue() {
Display.getDisplay(this).setCurrent(myCanvas);
myCanvas.start();
}
/*進入游戲介紹界面*/
public void menuListInstructions() {
Display.getDisplay(this).setCurrent(new InstructionScreen(this));
}
/*游戲介紹界面顯示完畢*/
public void instructionsBack() {
Display.getDisplay(this).setCurrent(menuList);
}
/*進入記錄界面*/
public void menuListRecord() {
Display.getDisplay(this).setCurrent(new RecordScreen(this));
}
/*記錄界面顯示完畢*/
public void RecordBack() {
Display.getDisplay(this).setCurrent(menuList);
}
/*退出游戲*/
public void menuListQuit() {
quit();
}
public void quit() {
destroyApp(false);
notifyDestroyed();
}
/*游戲結束界面*/
public void GameCanvasGameOver(long time, int record){
myCanvas.stop();
menuList.setGameActive(false);
Display.getDisplay(this).setCurrent(new GameOverScreen(this));
}
/*游戲結束界面顯示完畢*/
public void gameOverDone(){
Display.getDisplay(this).setCurrent(menuList);
}
/*手機閃屏效果*/
public void flashBacklight(int millis){
Display.getDisplay(this).flashBacklight(millis);
}
/*手機震動效果*/
public void vibrate(int millis){
Display.getDisplay(this).vibrate(millis);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -