📄 animal.java
字号:
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
import java.util.Random;
public class Animal {
private Hunt_Canvas manCanvas; //游戏画面
private int[] Locus;
private Sprite animal; // 图象
private Random rnd; // 随机种子
private int SWidth, SHeight; // 设备屏幕的宽度与高度
private boolean isActive;
private int flag;
private int Xinit;
private int Yinit;
private int Xincrement;
private Image img;
public Animal(Hunt_Canvas manCanvas, Image img, int SWidth, int SHeight, int flag) {
this.manCanvas = manCanvas;
this.flag = flag;
this.img = img;
if(flag == 1){
animal = new Sprite(img, img.getWidth()/2, img.getHeight());
}
else if(flag == 5){
animal = new Sprite(img, img.getWidth()/3, img.getHeight());
}
animal.setFrame(0);
Locus = new int[4];
rnd = new Random();
this.SWidth = SWidth;
this.SHeight = SHeight;
isActive = true;
Xinit = img.getWidth();
Yinit = img.getHeight();
}
public void InitAnimalLocus() {
animal.setTransform(Sprite.TRANS_NONE);
Locus[0] = (rnd.nextInt() & 0x7fffffff) % 2; //两种类型路径
switch (Locus[0]) {
case 0:
Locus[1] = -Xinit; //初始X坐标值
Locus[2] = SHeight-Yinit-10; //初始的Y坐标值
Locus[3] = (rnd.nextInt() & 0x7fffffff) % Xincrement + 5; //X坐标增量
animal.setTransform(Sprite.TRANS_MIRROR);
break;
case 1:
Locus[1] = SWidth+Xinit;
Locus[2] = SHeight-Yinit-10;
Locus[3] = ( (rnd.nextInt() & 0x7fffffff) % Xincrement + 5) * -1;
animal.setTransform(Sprite.TRANS_NONE);
break;
}
}
// 显示
public void paint(Graphics g) {
animal.setPosition(Locus[1], Locus[2]);
animal.paint(g);
if(isActive){
animal.nextFrame();
}
UpdataAnimalLocus(); // 更新运行轨迹数组
}
// 更新运行轨迹数组
public void UpdataAnimalLocus() {
if(isActive){
Locus[1] += Locus[3];
}
//超出边界的处理
else if(flag == 1){
Locus[2]+=5;
}
else if(flag == 5){
Locus[2]+=20;
}
if (Locus[1] < -Xinit || Locus[1] > SWidth+Xinit || Locus[2] > SHeight) {
isActive = true;
InitAnimalLocus();
manCanvas.setFlag(flag,false);
}
}
public Sprite getAnimal(){
return animal;
}
public void setIsAnimal(boolean f){
isActive = f;
}
public void setXincrement(int Xincre){
this.Xincrement = Xincre;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -