📄 hole.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 + -