📄 actor.java
字号:
//Source file: d:/MyProjects/Java/eatbean/eatbean/Actor.java
package eatbean;
import java.awt.*;
//
import java.util.Vector;
//
import eatbean.util.*;
import java.util.Hashtable;
public abstract class Actor implements Runnable {
public static final int LEVEL_1 = 1; //精灵级别常量
public static final int LEVEL_2 = 2;
public static final int LEVEL_3 = 3;
protected Thread thread = null;
/** 对象在屏幕上的绝对位置及大小 */
protected Rect rect = new Rect();
/** 对象在地图上的数组索引 */
protected Pos mapPos = new Pos();
protected Mediator mediator = null;
/** 下一步可能的方向 */
protected int nextDirection = DIR_EAST;
/** 当前行动方向 */
protected int direction = nextDirection;
/** 精灵的级别,级数大的吃级数小的 */
protected int level = LEVEL_2;
protected static int step = 2;
//protected int step = 2;
protected boolean paused;
/** 当前被Actor覆盖的Map上的元素索引集 */
protected Pos[] currCoveredPos = null;
public static final int DIR_WEST = 1;
public static final int DIR_EAST = -1;
public static final int DIR_NORTH = 2;
public static final int DIR_SOUTH = -2;
public Actor(Mediator m) {
mediator = m;
}
public void setPaused(boolean paused) { this.paused = paused; }
public void setLevel(int level) { this.level = level; }
public void setStep(int step) { this.step = step; }
public boolean getPaused() { return paused; }
public int getLevel() { return level; }
public int getStep() { return step; }
public void setNextDirection(int dir) {
if(!((dir != DIR_WEST) && (dir != DIR_EAST) && (dir != DIR_NORTH) &&
(dir != DIR_SOUTH)))
nextDirection = dir;
}
public Pos[] getCurrCoveredPos() { return currCoveredPos; }
public int getDirection() { return direction; }
public int getReverse() { return -direction; }
public Rect getRect() { return (Rect)rect.clone(); }
public Pos getMapPos() { return (Pos)mapPos.clone(); }
protected Image getImage(Hashtable imgBuffTable, Hashtable frameTable, int imgIndex) {
Integer key = new Integer(imgIndex);
Image result = (Image)imgBuffTable.get(key);
if(result == null) {
String fileName = frameTable.get(key).toString();
result = ImageTool.getImage(fileName);
if(result != null) imgBuffTable.put(key, result);
}
return result;
}
public abstract boolean act();
public abstract void paint();
public abstract void run();
public abstract void die();
public abstract void clear();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -