📄 shrewmouse.java
字号:
import java.io.IOException;
import java.util.Random;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class ShrewMouse {
//地洞的坐标,1~9
static final int Hole_Positions[][] = {
{-4, 68},{57, 74},{116, 73},
{-4,105},{53,108},{114,107},
{-5,145},{55,145},{114,143}
};
//动作播放帧
static int Action[];
static int act1[] = {
0,1,2,3,4,5,6,4,2,1,0,
-1,-1,-1,-1,-1,-1,-1
};
static int act2[] = {
0,1,2,3,4,2,1,0,
-1,-1,-1,-1,-1
};
static Image talpa_img = null;
static int w;
static int h;
static final Random rmd = new Random();
private int currFrame; //当前帧
private int index;
//出现速度
private int speed; //速度调节
private long lastTime;
//缩放比率
private double scale_x;
private double scale_y;
ShrewMouse(){
scale_x = GameScreen.getScaleX();
scale_y = GameScreen.getScaleY();
try {
talpa_img = Image.createImage("/talpa.png");
talpa_img = GameScreen.scaleImage(talpa_img,
(int)(talpa_img.getWidth()*scale_x),
(int)(talpa_img.getHeight()*scale_y));
talpa_img = GameScreen.alfImage(talpa_img, -1); //使图片原先的透明区域恢复
w = talpa_img.getWidth()/7;
h = talpa_img.getHeight();
} catch (IOException e) {
e.printStackTrace();
}
Action = act1;
currFrame = 0;
index = (rmd.nextInt()>>>1)%9;
speed = 5000; //初始速度
lastTime = System.currentTimeMillis(); //获取初始时间
}
/*绘制*/
void paint(Graphics g){
if(Action.length-1 == currFrame){
long now = System.currentTimeMillis(); //当前时间
if(now-lastTime > speed){
currFrame = 0;
index = (rmd.nextInt()>>>1)%9;
lastTime = now;
}
}
g.setClip((int)(Hole_Positions[index][0]*scale_x),
(int)(Hole_Positions[index][1]*scale_y), w, h);
g.drawImage(talpa_img,(int)(Hole_Positions[index][0]*scale_x)-Action[currFrame]*w,
(int)(Hole_Positions[index][1]*scale_y), 20);
}
/*改变序列*/
void changeSequence(int squ[]){
Action = squ;
}
/*改变帧*/
void changeFrame(){
if(currFrame<Action.length-1)
currFrame++;
}
/*获取当前帧*/
int getFrame(){
return currFrame;
}
void setFrame(int i){
i %= Action.length;
currFrame = i;
}
/*是否显露在外*/
boolean isOut(){
if(currFrame<7)
return true;
else
return false;
}
public int getIndex(){
return index;
}
/*出现的速度*/
void setSpeed(int sp){
speed = sp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -