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

📄 jumpmanager.java

📁 J2ME核心类及MIDlet类 MIDP用户界面对象 图形处理及低级事件处理 多线程编程 I/O及网络编程 数据库RMS编程 浮点数编程 多媒体及GAME API编程 安全、加密及
💻 JAVA
字号:
import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.*;public class JumpManager extends javax.microedition.lcdui.game.LayerManager {	static int CANVAS_X; // 显示的位置及大小	static int CANVAS_Y;	static int DISP_WIDTH;	static int DISP_HEIGHT;	Cowboy myCowboy; // 牛仔	Tumbleweed[] myLeftTumbleweeds; // 从左边来的风火轮	Tumbleweed[] myRightTumbleweeds;// 从右边来的风火轮	Grass myGrass; // 草地对象	boolean myLeft; // 牛仔是否向左	int myCurrentLeftX; //左边位置	void setLeft(boolean left) {		myLeft = left;	}	/**	 * 构造方法	 */	public JumpManager(int x, int y, int width, int height) {		CANVAS_X = x;		CANVAS_Y = y;		DISP_WIDTH = width;		DISP_HEIGHT = height;		myCurrentLeftX = Grass.CYCLE*Grass.TILE_WIDTH;		setViewWindow(0, 0, DISP_WIDTH, DISP_HEIGHT);	}	/**	 * 重置	 */	void reset() {		if(myGrass != null) {			myGrass.reset();		}		if(myCowboy != null) {			myCowboy.reset();		}		if(myLeftTumbleweeds != null) {			for(int i = 0; i < myLeftTumbleweeds.length; i++) {				myLeftTumbleweeds[i].reset();			}		}		if(myRightTumbleweeds != null) {			for(int i = 0; i < myRightTumbleweeds.length; i++) {				myRightTumbleweeds[i].reset();			}		}		myLeft = false;		myCurrentLeftX = Grass.CYCLE*Grass.TILE_WIDTH;	}	/**	 * 绘制	 */	public void paint(Graphics g) throws Exception {		// 创建牛仔		if(myCowboy == null) {			myCowboy = new Cowboy(myCurrentLeftX + DISP_WIDTH/2, 					DISP_HEIGHT - Cowboy.HEIGHT - 2);			append(myCowboy);		}		// 风火轮		if(myLeftTumbleweeds == null) {			myLeftTumbleweeds = new Tumbleweed[2];			for(int i = 0; i < myLeftTumbleweeds.length; i++) {				myLeftTumbleweeds[i] = new Tumbleweed(true);				append(myLeftTumbleweeds[i]);			}		}		if(myRightTumbleweeds == null) {			myRightTumbleweeds = new Tumbleweed[2];			for(int i = 0; i < myRightTumbleweeds.length; i++) {				myRightTumbleweeds[i] = new Tumbleweed(false);				append(myRightTumbleweeds[i]);			}		}		// 草地		if(myGrass == null) {			myGrass = new Grass();			append(myGrass);		}		// 设置视口		setViewWindow(myCurrentLeftX, 0, DISP_WIDTH, DISP_HEIGHT);		paint(g, CANVAS_X, CANVAS_Y);	}	/**	 * 如果牛仔到了边缘,则重置所有对象的位置	 */	void wrap() {		if(myCurrentLeftX % (Grass.TILE_WIDTH*Grass.CYCLE) == 0) {			if(myLeft) {				myCowboy.move(Grass.TILE_WIDTH*Grass.CYCLE, 0);				myCurrentLeftX += (Grass.TILE_WIDTH*Grass.CYCLE);				for(int i = 0; i < myLeftTumbleweeds.length; i++) {					myLeftTumbleweeds[i].move(Grass.TILE_WIDTH*Grass.CYCLE, 0);				}				for(int i = 0; i < myRightTumbleweeds.length; i++) {					myRightTumbleweeds[i].move(Grass.TILE_WIDTH*Grass.CYCLE, 0);				}						} else {				myCowboy.move(-(Grass.TILE_WIDTH*Grass.CYCLE), 0);				myCurrentLeftX -= (Grass.TILE_WIDTH*Grass.CYCLE);				for(int i = 0; i < myLeftTumbleweeds.length; i++) {					myLeftTumbleweeds[i].move(-Grass.TILE_WIDTH*Grass.CYCLE, 0);				}				for(int i = 0; i < myRightTumbleweeds.length; i++) {					myRightTumbleweeds[i].move(-Grass.TILE_WIDTH*Grass.CYCLE, 0);				}			}		}	}	/**	 * 步进,传入参数是时间,返回值是得分	 */	int advance(int gameTicks) {		int retVal = 0;		// 改变当前的位置		if(myLeft) {			myCurrentLeftX--;		} else {			myCurrentLeftX++;		}		// 让各个图层对象都步进一点,并获得分数		myGrass.advance(gameTicks);		myCowboy.advance(gameTicks, myLeft);		for(int i = 0; i < myLeftTumbleweeds.length; i++) {			retVal += myLeftTumbleweeds[i].advance(myCowboy, gameTicks, 				myLeft, myCurrentLeftX, myCurrentLeftX + DISP_WIDTH);			retVal -= myCowboy.checkCollision(myLeftTumbleweeds[i]);		}		for(int i = 0; i < myLeftTumbleweeds.length; i++) {			retVal += myRightTumbleweeds[i].advance(myCowboy, gameTicks, 					 myLeft, myCurrentLeftX, myCurrentLeftX + DISP_WIDTH);			retVal -= myCowboy.checkCollision(myRightTumbleweeds[i]);		}		// 如果需要则进行回转		wrap();		return(retVal);	}	/**	 * 跳动	 */	void jump() {		myCowboy.jump();	}}

⌨️ 快捷键说明

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