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

📄 hole.java

📁 J2ME手机游戏50例
💻 JAVA
字号:
package demo;
import java.util.Random;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class Hole {
	private int m_nX;							//洞穴的X方向位置
	private int m_nY;							//洞穴的Y方向位置
	private Image m_HoleImg;					//洞穴图像
	private MouseSprite m_Mouse;				//洞穴中的地鼠
	private boolean m_bHammer = false;		//是否有锤子落在此洞穴
	private Random m_Random;

	//Hole类的构造方法
	//参数hole为洞穴图像,mouse为地鼠图像,rand为随机数对象,
	//x,y设置洞穴的位置
	public Hole( Image hole, Image mouse, Random rand, int x, int y ){
		m_HoleImg = hole;
		m_Random = rand;
		m_nX = x;
		m_nY = y;
		try{
			m_Mouse = new MouseSprite( mouse, 32, 34 );
			m_Mouse.setRefPixelPosition( m_nX, m_nY - 13 );
		}
		catch (Exception ex){}
	}
	//是否有锤子落下,返回true表示有,false表示没有
	public boolean isHammer(){
		return m_bHammer;
	}
	//落下锤子
	public void HammerDown( HammerSprite hammer ){
		if( hammer.getState() == HammerSprite.HAMMER_HIDE ){
			m_bHammer = true;
			hammer.setRefPixelPosition( m_nX, m_nY - 25 );
			hammer.setState(HammerSprite.HAMMER_UP);
		}
	}
	//逻辑操作,产生并控制动画,并判断地鼠是否被打中
	//返回true表示打中了地鼠,false则表示没打中
	public boolean Logic( HammerSprite hammer ){
		m_Mouse.Logic();
		if( hammer.getState() == HammerSprite.HAMMER_HIDE )
			m_bHammer = false;
		switch( m_Mouse.getState() ){
		case MouseSprite.MOUSE_SHOW:
			if( m_bHammer && hammer.getState() == HammerSprite.HAMMER_DOWN ){
				m_Mouse.setState( MouseSprite.MOUSE_INJURE );
				return true;
			}
			break;
		case MouseSprite.MOUSE_HIDE:
			int n = m_Random.nextInt() % 20;
			if( n == 0 ){
				m_Mouse.setState(MouseSprite.MOUSE_SHOW);
			}
			break;
		}
		return false;
	}
	//显示洞穴及地鼠图像
	public void Paint( Graphics g ){
		g.drawImage( m_HoleImg, m_nX, m_nY, 
				Graphics.TOP | Graphics.HCENTER );
		m_Mouse.paint(g);
	}
}

⌨️ 快捷键说明

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