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

📄 garage.java

📁 J2ME编程的50个例子,适合掌上系统的编程
💻 JAVA
字号:
package demo;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;


public class Garage {
	public static final int GARAGE_CLOSE 		= 0;	//车库门已经关闭
	public static final int GARAGE_CLOSING 	= 1;	//车库门正在关闭
	public static final int GARAGE_OPEN		= 2;	//车库门临时打开
	public static final int GARAGE_OPEN_EVER	= 3;	//车库门永久打开
	public static final int GARAGE_STATE_NUM 	= 4; 	//状态总数
	private int m_nState = GARAGE_CLOSE;
	private Sprite m_CarSp;						//汽车精灵
	private Image m_GarageImg;						//车库图像
	private int m_nX;								//车库位置的X坐标
	private int m_nY;								//车库位置的Y坐标
	private int m_nTime;							//关闭库门时要先停留一会再关闭
	
	//Garage类的构造方法
	//参数garage为车库图像,x与y分别是车库的位置
	public Garage( Image garage, int x, int y ){
		m_GarageImg = garage;
		m_nX = x;
		m_nY = y;
	}
	//设置车库中的汽车
	//参数car是汽车图像,type为汽车的类型,
	//参数frameWidth与frameHeight分别是汽车精灵的宽和高
	public void setCar( Image car, int type, 
			int frameWidth, int frameHeight ){
		try{
			m_CarSp = null;
			if( car != null ){
				m_CarSp = new Sprite(car, frameWidth, frameHeight);
				m_CarSp.setFrame(type);
				m_CarSp.setPosition(m_nX + 6, m_nY + 16);
			}
		}
		catch (Exception ex){ } 
	}
	//得到车库中汽车的类型
	public int getCarType(){
		if( m_CarSp == null )
			return -1;
		return m_CarSp.getFrame();
	}
	//获取当前车库的状态
	public int getState(){
		return m_nState;
	}
	//设置车库的状态
	public void setState(int state){
		if( state < 0 || state >= GARAGE_STATE_NUM )
			return;
		m_nState = state;
		if( m_nState == GARAGE_CLOSING )
			m_nTime = 5;
	}
	//获得车库左上角的X坐标
	public int getX(){
		return m_nX;
	}
	//获得车库左上角的Y坐标
	public int getY(){
		return m_nY;
	}
	//获得车库图像的宽度
	public int getWidth(){
		return m_GarageImg.getWidth();
	}
	//获得车库图像的高度
	public int getHeight(){
		return m_GarageImg.getHeight();
	}
	public void Logic(){
		switch( m_nState ){
		case GARAGE_CLOSING:
			m_nTime --;
			if( m_nTime < 0 ){
				setState(GARAGE_CLOSE);
			}
			break;
		}
	}
	
	//显示车库和汽车图像
	public void Paint(Graphics g){
		switch(m_nState){
		case GARAGE_CLOSE:
			g.drawImage(m_GarageImg, m_nX, m_nY, 0);
			break;
		case GARAGE_CLOSING:
		case GARAGE_OPEN:
		case GARAGE_OPEN_EVER:
			g.drawImage(m_GarageImg, m_nX, m_nY, 0);
			m_CarSp.paint(g);
			break;
		}
	}

}

⌨️ 快捷键说明

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