1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
|
public void move() {
lastx = x;
lasty = y;
if(path != null) {
if(path.size() > 0) {
Tile tile = path.get(path.size()-1);
int tx = Tools.toScreenX(tilex,tiley)-16;
int ty = Tools.toScreenY(tilex,tiley);
if(x < tx && y == ty) {
x+=xspeed;
direction = 2;
move = getFrame(move,10,14,4);
lasttilex = tilex-1;
lasttiley = tiley+1;
}
else if(y < ty && x == tx) {
y+=yspeed;
direction = 4;
move = getFrame(move,5,9,4);
lasttilex = tilex-1;
lasttiley = tiley-1;
}
else if(x > tx && y == ty) {
x-=xspeed;
direction = 6;
move = getFrame(move,15,19,4);
lasttilex = tilex+1;
lasttiley = tiley-1;
}
else if(y > ty && x == tx) {
y-=yspeed;
direction = 0;
move = getFrame(move,0,4,4);
lasttilex = tilex+1;
lasttiley = tiley+1;
}
else if(x < tx && y < ty) {
x+=xspeed;
y+=yspeed/2;
direction = 3;
move = getFrame(move,30,34,4);
lasttilex = tilex-1;
lasttiley = tiley;
}
else if(y < ty && x > tx) {
x-=xspeed;
y+=yspeed/2;
direction = 5;
move = getFrame(move,35,39,4);
lasttilex = tilex;
lasttiley = tiley-1;
}
else if(x > tx && y > ty) {
x-=xspeed;
y-=yspeed/2;
direction = 7;
move = getFrame(move,25,29,4);
lasttilex = tilex+1;
lasttiley = tiley;
}
else if(y > ty && x < tx) {
x+=xspeed;
y-=yspeed/2;
direction = 1;
move = getFrame(move,20,24,4);
lasttilex = tilex;
lasttiley = tiley+1;
}
else if(y == ty && x == tx){
IsometricMap.tiles[tilex][tiley].setUnit(false);
tilex = tile.getX();
tiley = tile.getY();
IsometricMap.tiles[tilex][tiley].setUnit(true);
path.remove(tile);
}
}
else {
}
//System.out.println(tilex + " " + lasttilex + " " + tiley + " " + lasttiley);
}
}
|