📄 chasesprite.java
字号:
package found;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
public class ChaseSprite
extends Sprite {
private Random rand;
private int speed;
private TiledLayer barrier;
private boolean directional;
private Sprite chasee;
private int aggression;
private int Left[] = {
9, 10, 11, 10};
private int Up[] = {
0, 1, 2, 1};
private int Down[] = {
6, 7, 8, 7};
private int Right[] = {
3, 4, 5, 4};
public ChaseSprite(Image image, int frameWidth, int frameHeight,
int chaseSpeed,
TiledLayer barrierLayer, boolean hasDirection,
Sprite chaseeSprite,
int aggressionLevel) {
super(image, frameWidth, frameHeight);
rand = new Random();
speed = chaseSpeed;
barrier = barrierLayer;
directional = hasDirection;
chasee = chaseeSprite;
aggression = aggressionLevel;
}
public void update() {
int xPos = getX();
int yPos = getY();
int direction = 0;
if (Math.abs(rand.nextInt() % (aggression + 1)) > 0) {
if (getX() > (chasee.getX() + chasee.getWidth() / 2)) {
// Chase left
move( -speed, 0);
direction = 3;
}
else if ( (getX() + getWidth() / 2) < chasee.getX()) {
// Chase right
move(speed, 0);
direction = 1;
}
if (getY() > (chasee.getY() + chasee.getHeight() / 2)) {
// Chase up
move(0, -speed);
direction = 0;
}
else if ( (getY() + getHeight() / 2) < chasee.getY()) {
// Chase down
move(0, speed);
direction = 2;
}
}
else {
switch (Math.abs(rand.nextInt() % 4)) {
// left
case 0:
move( -speed, 0);
direction = 3;
break;
// right
case 1:
move(speed, 0);
direction = 1;
break;
//up
case 2:
move(0, -speed);
direction = 0;
break;
//down
case 3:
move(0, speed);
direction = 2;
break;
}
}
if (barrier != null && collidesWith(barrier, true)) {
setPosition(xPos, yPos);
}
if (directional) {
switch (direction) {
case 0:
this.setFrameSequence(Up);
this.nextFrame();
break;
case 1:
this.setFrameSequence(Right);
this.nextFrame();
break;
case 2:
this.setFrameSequence(Down);
this.nextFrame();
break;
case 3:
this.setFrameSequence(Left);
this.nextFrame();
break;
}
}
else {
nextFrame();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -