⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamedata.java

📁 手机射击游戏源代码,nokia s60模拟器开发包,eclipse工具开发.不可用于商业用途.
💻 JAVA
字号:
package src;

import javax.microedition.lcdui.Image;

public abstract class GameData {
	protected int missionID;
	private static GameData instance = new GameDataSimple();

	public static GameData getInstance(){
		return instance;
	}
	/**
	 * 关卡ID
	 * @return 返回 missionID。
	 */
	public final int getMissionID() {
		return missionID;
	}

	/**
	 * @param missionID 要设置的 missionID。
	 */
	public final void setMissionID(int missionID) {
		if(this.getTotalMission() <= missionID || missionID <=0){
			throw new IllegalArgumentException("Mission id error: " + missionID);
		}
		this.missionID = missionID;
		this.loadCurrentMission();
	}
	
	public final void nextMission(){
		if(missionID < this.getTotalMission()){
			this.setMissionID(missionID+1);
		}
	}
	/**
	 * 加载当前关卡的数据,本方法由抽象类隐式调用
	 */
	protected abstract void loadCurrentMission();

	/**
	 * 获得运行游戏使用的分辨率
	 * @return 返回仅有两个元素的无符号整型数组,数组第一个元素是X轴分辨率,第二个元素是Y轴分辨率
	 */
	public abstract int[] getResolvingPower();

	/**
	 * 获取游戏颜色数
	 * @return
	 */
	public abstract int getTotalColor();

	/**
	 * 获取游戏类型
	 * @return
	 */
	public abstract int getGameType();

	/**
	 * 获取关卡数总计
	 * @return
	 */
	public abstract int getTotalMission();

	////下面的方法全部针对当前关卡操作
	/**
	 * 获取当前关卡的字符串属性。
	 * 每个属性含意由具体实现定义
	 * @return
	 */
	public abstract String[] getMissionProperties();
	
	/**
	 * 获取当前关卡地图的大小,以像素为单位,返回数组第一个元素为X轴大小,第二个元素为Y轴大小
	 * @return
	 */
	public abstract int[][][] getMapSize();

	/**
	 * 获取可通行区域地图数组。第一维表示高度,第二维表示宽度,以贴图为单位
	 * 数组元素中true代表可通过,false代表不可通过
	 * @return
	 */
	public abstract boolean[][] getBarrierData();

	/**
	 * 获取可通行区域地图数组中每个单元格的宽度,以像素为单位
	 * @return
	 */
	public abstract int getBarrierWidth();

	/**
	 * 获取可通行区域地图数组中每个单元格的高度,以像素为单位
	 * @return
	 */
	public abstract int getBarrierHeight();
	
	/**
	 * 获取地面贴图的索引数组。数组元素为贴图的图片索引值,以贴图为单位;
	 * 假设地面横向由m个贴图组成,纵向由n个贴图组成,则返回int[n][m]
	 * @return
	 */
	public abstract short[][] getTilesIndex();
	/**
	 * 获取地面贴图的图片宽度,以像素为单位
	 * @return
	 */
	public abstract int getTileWidth();
	/**
	 * 获取地面贴图的图片高度,以像素为单位
	 * @return
	 */
	public abstract int getTileHeight();
	
	/**
	 * 获取地图上的精灵索引。
	 * <pre>
	 * 假设地图中有n个精灵,
	 * 则返回数组:int[n][6]
	 * 第n个精灵的数据:
	 *    int[n][0] = 精灵的初始化X坐标
	 *    int[n][1] = 精灵初始化Y坐标
	 *    int[n][2] = 精灵的帧宽度
	 *    int[n][3] = 精灵的帧高度
	 *    int[n][4] = 精灵图片的索引值
	 *    int[n][5] = 精灵类型(ITEM=0x01, NPC=0x02, Tree & Structure=0x03, Other=0xFF)
	 * <pre>
	 * @return 返回二维整型数组
	 */
	public abstract int[][][] getSpritesData();

	/**
	 * 返回玩家角色的基本数据
	 * int[0] = 图片索引ID
	 * int[1] = 帧宽度
	 * int[2] = 帧高度
	 * int[3] = 检测盒左上角X坐标,相对于角色位置的相对坐标,以像素为单位
	 * int[4] = 检测盒左上角Y坐标,相对于角色位置的相对坐标,以像素为单位
	 * int[5] = 检测盒高度
	 * int[6] = 检测盒宽度
	 * @return int[7]
	 */
	public abstract int[] getPlayerInfo();
	
	/**
	 * 获取玩家角色的附加数值属性。
	 * 这里的属性个数不定,但均按预先设定的顺序保存,即开发者可通过事先约定的索引值获取特定属性;
	 * 属性含意由具体业务逻辑解析,本类中不对属性内容解析处理
	 * @return
	 */
	public abstract int[] getPlayerNumProp();
	
	/**
	 * 获取玩家角色的附加字符串属性。
	 * 这里的属性个数不定,但均按预先设定的顺序保存,即开发者可通过事先约定的索引值获取特定属性;
	 * 属性含意由具体业务逻辑解析,本类中不对属性内容解析处理
	 * @return
	 */
	public abstract String[] getPlayerStrProp();
	/**
	 * 获取图片
	 * @param id
	 * @return
	 */
	public abstract Image findImage(int id);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -