日期:2014-05-20 浏览次数:20790 次
public class Jianyecheng extends GameCanvas implements Runnable{ private Display dis; private Graphics g; private TiledLayer map; private Zhujiao zhujiao; private LayerManager lm; public Jianyecheng(Zhujiao zj,Display dis) { super(true); this.setFullScreenMode(true); this.dis=dis; g=this.getGraphics(); lm=new LayerManager(); /********主角初始化***********/ if(zj!=null){ this.zhujiao=zj; }else{ Image img=null; try { img=Image.createImage("/renwuImg/xiaoyao.png"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.zhujiao=new Zhujiao(new Sprite(img,img.getWidth()/4,img.getHeight()/4)); } this.zhujiao.setFrame(0); this.zhujiao.setPosition(10, 65); lm.append(this.zhujiao); /********地图初始化***********/ Image img=null; try { img=Image.createImage("/map/jiangnan.png"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } map=new TiledLayer(1,1,img,img.getWidth(),img.getHeight()); map.setCell(0, 0, 1); lm.append(map); lm.paint(g, 0, 0); this.flushGraphics(); new Thread(this).start(); //启动地图滚动管理器 new Thread(new MapContor(lm,map,this.zhujiao,this.getWidth(),this.getHeight())).start(); } public void run() { boolean flag=true; while(flag){ int state=this.getKeyStates(); if((state&this.LEFT_PRESSED)!=0){ lm.remove(zhujiao); zhujiao.run(Zhujiao.LEFT); lm.insert(zhujiao, 0); }else if((state&this.RIGHT_PRESSED)!=0){ lm.remove(zhujiao); zhujiao.run(Zhujiao.RIGHT); lm.insert(zhujiao, 0); } else if((state&this.UP_PRESSED)!=0){ zhujiao.run(Zhujiao.UP); }else if((state&this.DOWN_PRESSED)!=0){ zhujiao.run(Zhujiao.DOWN); } lm.paint(g, 0, 0); this.flushGraphics(); try { Thread.currentThread().sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }//end run方法 }//end Jianyecheng