首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

J2me游戏map滚动

2012-08-26 
J2me游戏地图滚动package com.mhxy.utilimport javax.microedition.lcdui.game.LayerManagerimport java

J2me游戏地图滚动

package com.mhxy.util;import javax.microedition.lcdui.game.LayerManager;import javax.microedition.lcdui.game.TiledLayer;/**********************处理地图滚动************************************/public class MapContor implements Runnable{private LayerManager lm;//图层管理器private TiledLayer map;private Zhujiao zhujiao;//游戏主角private int h;//屏幕水平宽度private int v;//屏幕垂直高度private int start=35;//主角距离屏幕start时开始滚屏private int x=0;//视窗坐标private int y=0;//视窗坐标private int map_speed=10;//地图滚动间隔时间数public MapContor(LayerManager lm,TiledLayer map,Zhujiao zhujiao,int width,int height){this.lm=lm;this.map=map;this.zhujiao=zhujiao;this.h=width;this.v=height;//设置可视窗口大小与坐标lm.setViewWindow(x,y, h, v);}public void run() {/****************主角距离屏幕小于length时开始滚屏**************************/while(true){//触发左滚if(zhujiao.getX()-this.x<this.start){boolean flag=true;while(flag){if(this.x>0){//可以左滚if(zhujiao.getX()-this.x<this.h/2){//主角没有滚到中心lm.setViewWindow(x--, y, h, v);}else{flag=false;}}else{flag=false;}this.Mysleep();}}//触发上滚if(zhujiao.getY()-this.y<this.start){boolean flag=true;while(flag){if(this.y>0){//可以上滚if(zhujiao.getY()-this.y<this.v/2){//主角没有滚到中心lm.setViewWindow(x, y--, h, v);}else{flag=false;}}else{flag=false;}this.Mysleep();}}//触发右滚if((this.x+this.h)-(zhujiao.getX()+zhujiao.getWidth())<this.start){boolean flag=true;while(flag){if(this.x+this.h<map.getCellWidth()){//可以右滚if(zhujiao.getX()-this.x>this.h/2){//主角没有滚到中心lm.setViewWindow(x++, y, h, v);}else{flag=false;}}else{flag=false;}this.Mysleep();}}//触发下滚if((this.y+this.v)-(zhujiao.getY()+zhujiao.getHeight())<this.start){boolean flag=true;while(flag){if(this.y+this.v<map.getHeight()){//可以下滚if(zhujiao.getY()-this.y>this.v/2){//主角没有滚到中心lm.setViewWindow(x, y++, h, v);}else{flag=false;}}else{flag=false;}this.Mysleep();}}try {Thread.currentThread().sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}//end runpublic void Mysleep(){/**休息**/try {Thread.currentThread().sleep(map_speed);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

热点排行