| ents CommandListener {
private int[] loc = new int[2]; <A href="file://光">file://光</A>标的当前位置,0是水平位置,1是竖直位置 private int[] SelectArea = new int[4];//被选定的区域,即要移动的区域 private int[] MoveArea = new int[4];//要移动到的区域 private Map MyMap = new Map();//地图类 private boolean selected;//是否已经选中要移动区域的标志 private int level;//但前的关面 public Displayable1() {//构造函数 try { jbInit();//JBuilder定义的初始化函数 }catch (Exception e) { e.printStackTrace(); } } private void Init_game(){ //初始化游戏,读取地图,设置选择区域,清空要移动到的区域 this.loc = MyMap.read_map(this.level);//读取地图文件,并返回光标的初始位置 //0为水平位置,1为竖直位置 this.SelectArea[0] = this.loc[0];//初始化选中的区域 this.SelectArea[1] = this.loc[1]; this.SelectArea[2] = 1; this.SelectArea[3] = 1; this.MoveArea[0] = -1;//初始化要移动到的区域 this.MoveArea[1] = -1; this.MoveArea[2] = 0; this.MoveArea[3] = 0; } private void jbInit() throws Exception {//JBuilder定义的初始化函数 <A href="file://初">file://初</A>始化实例变量 this.selected = false;//设置没有被选中的要移动区域 this.level = 1; Images.init();//初始化图片常量 Init_game();//初始化游戏,读取地图,设置选择区域,清空要移动到的区域 setCommandListener(this);//添加命令监听,这是Displayable的实例方法 addCommand(new Command("Exit", Command.EXIT, 1));//添加“退出”按钮 }
public void commandAction(Command command, Displayable displayable) { //命令处理函数 if (command.getCommandType() == Command.EXIT) {//处理“退出” MIDlet1.quitApp(); } }
protected void paint(Graphics g) { //画图函数,用于绘制用户画面,即显示图片,勾画选中区域和要移动到的区域 try { g.drawImage(Images.image_Frame, 0, 0, Graphics.TOP | Graphics.LEFT);//画背景 MyMap.draw_map(g);//按照地图内容画图 if ( this.selected ) g.setColor(0,255,0);//如果被选中,改用绿色画出被选中的区域 g.drawRect(this.SelectArea[0] * Images.UNIT + Images.LEFT, this.SelectArea[1] * Images.UNIT + Images.TOP, this.SelectArea[2] * Images.UNIT, this.SelectArea[3] * Images.UNIT);//画出选择区域, <A href="file://如">file://如</A>果被选中,就用绿色 <A href="file://否">file://否</A>则,使用黑色 g.setColor(255,255,255);//恢复画笔颜色 if (this.selected) {//已经选中了要移动的区域 g.setColor(255, 0, 255);//改用红色 g.drawRect(this.MoveArea[0] * Images.UNIT + Images.LEFT, this.MoveArea[1] * Images.UNIT + Images.TOP, this.MoveArea[2] * Images.UNIT, this.MoveArea[3] * Images.UNIT);//画出要移动到的区域 g.setColor(255, 255, 255);//恢复画笔颜色 } }catch (Exception ex) { } System.out.println(Runtime.getRuntime().freeMemory()); System.out.println(Runtime.getRuntime().totalMemory()); }
private void setRange() { //设置移动后能够选中的区域 //调整当前光标位置到地图的主位置,即记录人物信息的位置 if (this.MyMap.Grid[this.loc[1]][this.loc[0]] == Images.DLEFT) { this.loc[0] -= 1;//向左调 }else if (this.MyMap.Grid[this.loc[1]][this.loc[0]] == Images.DUP) { this.loc[1] -= 1;//向上调 }else if (this.MyMap.Grid[this.loc[1]][this.loc[0]] == Images.DLEFTUP) { this.loc[0] -= 1;//向左调 this.loc[1] -= 1;//向上调 } this.SelectArea[0] = this.loc[0];//设置光标的水平位置 此新闻共有8页 上一页 1 2 3 4 5 6 7 8 下一页 |