?? 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 + -