?? level.java
字號(hào):
package org.gamecollege.j2me.rpg;
import java.util.Hashtable;
/**
* 游戲關(guān)卡 一個(gè)游戲存在多個(gè)關(guān)卡,一個(gè)關(guān)卡包含多個(gè)地圖 每個(gè)關(guān)卡對(duì)應(yīng)一個(gè)關(guān)卡文件。關(guān)卡文件的命名規(guī)則是:level[關(guān)卡號(hào)].lev
* 例如level0.lev代表編號(hào)為0的關(guān)卡文件。
*/
public class Level {
//關(guān)卡任務(wù)描述
String missionDesc;
//過(guò)關(guān)任務(wù)類(lèi)型,比如0表示打老虎。
int missionType;
//過(guò)關(guān)需完成的任務(wù)數(shù)量,比如在打老虎一關(guān)中需殺死的老虎數(shù)量
int missionValue;
/**
* 關(guān)卡號(hào)
*/
int levelNo;
/**
* 關(guān)卡名稱(chēng)
*/
String name;
/**
* 關(guān)卡描述
*/
String description;
/**
* tile 寬度
*/
int tileWidth;
/**
* tile 高度
*/
int tileHeight;
/**
* 關(guān)卡中涉及到的Image key:圖片文件的編號(hào),Integer對(duì)象 value:圖片文件對(duì)應(yīng)的Image對(duì)象
*/
Hashtable allImages;
/**
* 關(guān)卡中涉及到的技能 key:技能編號(hào),Integer對(duì)象 value:Skill對(duì)象
*/
Hashtable skills;
/**
* 關(guān)卡中涉及到的道具 key:道具編號(hào),Integer對(duì)象 value:Property對(duì)象
*/
Hashtable properties;
/**
* 關(guān)卡中涉及到的NPC key:NPC編號(hào),Integer對(duì)象 value:NPC對(duì)象
*
*/
Hashtable npcs;
/**
* 關(guān)卡當(dāng)前地圖
*/
Map curMap;
/**
* 連接區(qū)集合,key:Link對(duì)象編號(hào),Integer類(lèi)型 value:Link對(duì)象
*
*/
Hashtable links;
/**
* 地圖集合。key:地圖編號(hào),Integer對(duì)象 value:Map對(duì)象
*
*/
Hashtable maps;
//關(guān)卡中的當(dāng)前地圖號(hào)
int curMapNo;
/**
* 利用LevelLoader單例,
* 裝載解析關(guān)卡文件進(jìn)行關(guān)卡初始化
*
*/
public void initLevel() {
LevelLoader.instance.loadLevel(this);
}
/**
* 關(guān)卡中進(jìn)行地圖切換的方法
* @param linker 觸發(fā)地圖切換動(dòng)作的地圖連接區(qū)
* @param hero 主角
*/
public void changeMap(Linker linker, Player hero) {
int nextMapId = linker.nextMapID;
//改變當(dāng)前地圖
curMap = (Map) this.maps.get(new Integer(nextMapId));
//根據(jù)Linker,改變英雄出現(xiàn)的行和列
MyRPGGameMIDlet.mc.myPlayer.col = linker.newHeroColNo;
MyRPGGameMIDlet.mc.myPlayer.row = linker.newHeroRowNo;
MyRPGGameMIDlet.mc.myPlayer.moveTimes=0;
curMap.heroAppearRow = linker.newHeroRowNo;
//構(gòu)建新地圖。
MyRPGGameMIDlet.mc.constructMap();
}
/**
* 根據(jù)過(guò)關(guān)條件,過(guò)關(guān)任務(wù)數(shù)量,判斷是否過(guò)關(guān)
* @return
*/
public boolean isCompleted(){
switch (this.missionType) {
//打老虎
case 0:
if(MyRPGGameMIDlet.mc.killTigerCount>=this.missionValue){
return true;
}
return false;
default:
return false;
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -