📄 tile.java
字号:
import java.awt.Point;
import java.awt.Image;
import java.util.StringTokenizer;
public class Tile {
static Image redMap, compMap;
String imageFileName, iconFileName,tileName;
StringBuffer information;
Image redImage;
Point upperLeftCorner;
final static int maxNum = 8;
int compositeNum = 0, counter1 = 0, counter2 = 0;
/* only maxNum composites can be handled */
Image[] compositeImages = new Image[ maxNum ];
Point[] compOffsets = new Point[ maxNum ];
Point[] compCorners = new Point[ maxNum ];
public Tile(String s1, String s2, String s3, Image img) {
imageFileName = s1;
iconFileName = s2;
tileName = s3;
information = new StringBuffer();
redImage = img;
}
public void addComposite(Image img) {
if (compositeNum < maxNum) {
compositeImages[ compositeNum ] = img;
compositeNum++;
}
}
public Point[] getRedPoints() {
int count = 0, index = 0;
String lines = information.toString();
StringTokenizer st;
/* count how many "at"s there are in the lines */
while (lines.indexOf("at", index) >= 0) {
index = lines.indexOf("at", index) + 2; /* advance index */
count++;
}
Point[] points = new Point[ count ];
index = 0;
for (int i = 0; i < count; i++) {
st = new StringTokenizer(lines.substring(lines.indexOf(" at ", index)));
index = lines.indexOf("at", index) + 5;
st.nextToken(); /* discard the "at" */
try {
int x = Integer.parseInt(st.nextToken(" ,;"));
int y = Integer.parseInt(st.nextToken(" ,;"));
points[ i ] = new Point(x, y);
}
catch (NumberFormatException e) {System.out.println(e);};
}
return points;
}
public void addInfo(String infoLine) {
information.append(infoLine + "\n");
if (infoLine.indexOf("symbol offset") > 0) {
/* get the composite symbol offsets */
StringTokenizer st = new StringTokenizer(infoLine);
st.nextToken(); st.nextToken(); st.nextToken();
try {
int x = Integer.parseInt(st.nextToken("{} ,;"));
int y = Integer.parseInt(st.nextToken("{} ,;"));
System.out.println(x + " , " + y);
if (counter1 < maxNum) {
compOffsets[ counter1 ] = new Point(x, y);
counter1++;
}
}
catch (NumberFormatException e) {System.out.println(e);};
}
if (infoLine.indexOf("upper left") > 0) {
/* get the composite upper left corner */
StringTokenizer st = new StringTokenizer(infoLine);
st.nextToken(); st.nextToken(); st.nextToken();
/* discard 1 extra token if it is red upper left */
if (infoLine.indexOf("{red") == 0) st.nextToken();
try {
int x = Integer.parseInt(st.nextToken("{} ,;"));
int y = Integer.parseInt(st.nextToken("{} ,;"));
System.out.println(x + " , " + y);
if (infoLine.indexOf("{composite") == 0)
if (counter2 < maxNum) {
compCorners[ counter1 ] = new Point(x, y);
counter2++;
}
if (infoLine.indexOf("{red") == 0) upperLeftCorner = new Point(x, y);
}
catch (NumberFormatException e) {System.out.println(e);};
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -