@@ -33,38 +33,43 @@ public class Tile implements Comparable<Tile> {
33
33
private boolean isSwampland ;
34
34
private Tile cameFrom ;
35
35
private boolean removeAntImg ;
36
+ private static Color boardDefaultColor = Color .WHITE ;
36
37
private Image antImage ;
38
+ private Image foodImg ;
39
+ private Image grasslandImg ;
40
+ private Image swamplandImg ;
41
+ private Image obstacleImg ;
37
42
38
43
public Tile (int x , int y ) {
39
44
this .x = x ;
40
45
this .y = y ;
41
-
46
+
42
47
this .cost = COST_OPEN_TERRAIN ;
43
48
isOpenTerrain = true ;
44
49
this .cameFrom = null ;
45
50
}
46
51
47
52
public void draw (Graphics g ) {
48
53
if (isObstacle ) {
49
- g . setColor ( Color . BLACK );
54
+ drawObstacleImage ( g );
50
55
} else if (isStart ) {
51
56
if (removeAntImg ) {
52
57
g .setColor (Color .LIGHT_GRAY );
53
58
} else {
54
59
drawAntImage (g );
55
60
}
56
61
} else if (isGoal ) {
57
- g . setColor ( Color . WHITE );
62
+ drawFoodImage ( g );
58
63
} else if (isGrassland ) {
59
- g . setColor ( Color . YELLOW );
64
+ drawGrassland ( g );
60
65
} else if (isSwampland ) {
61
- g . setColor ( Color . BLUE );
66
+ drawSwampland ( g );
62
67
} else {
63
68
// open terrain
64
- g .setColor (Color . WHITE );
69
+ g .setColor (boardDefaultColor );
65
70
}
66
71
67
- if (!isStart || removeAntImg ){
72
+ if (( !isStart || removeAntImg ) && ! isGoal ){
68
73
g .fillRect (getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize ());
69
74
}
70
75
@@ -73,12 +78,65 @@ public void draw(Graphics g) {
73
78
74
79
}
75
80
81
+ private void drawObstacleImage (Graphics g ) {
82
+ try {
83
+ if (obstacleImg == null ){
84
+ obstacleImg = ImageIO .read (getClass ().getResource ("/assets/images/obstacle.png" ));
85
+ }
86
+ g .setColor (boardDefaultColor );
87
+ g .fillRect (getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize ());
88
+ g .drawImage (obstacleImg , getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize (), null );
89
+ } catch (IOException e ) {
90
+ e .printStackTrace ();
91
+ }
92
+ }
93
+
94
+ private void drawSwampland (Graphics g ) {
95
+ try {
96
+ if (swamplandImg == null ){
97
+ swamplandImg = ImageIO .read (getClass ().getResource ("/assets/images/swampland.png" ));
98
+ }
99
+ g .setColor (boardDefaultColor );
100
+ g .fillRect (getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize ());
101
+ g .drawImage (swamplandImg , getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize (), null );
102
+ } catch (IOException e ) {
103
+ e .printStackTrace ();
104
+ }
105
+ }
106
+
107
+ private void drawGrassland (Graphics g ) {
108
+ try {
109
+ if (grasslandImg == null ){
110
+ grasslandImg = ImageIO .read (getClass ().getResource ("/assets/images/grassland.png" ));
111
+ }
112
+ g .setColor (boardDefaultColor );
113
+ g .fillRect (getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize ());
114
+ g .drawImage (grasslandImg , getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize (), null );
115
+ } catch (IOException e ) {
116
+ e .printStackTrace ();
117
+ }
118
+
119
+ }
120
+
121
+ private void drawFoodImage (Graphics g ) {
122
+ try {
123
+ if (foodImg == null ){
124
+ foodImg = ImageIO .read (getClass ().getResource ("/assets/images/food.png" ));
125
+ }
126
+ g .setColor (boardDefaultColor );
127
+ g .fillRect (getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize ());
128
+ g .drawImage (foodImg , getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize (), null );
129
+ } catch (IOException e ) {
130
+ e .printStackTrace ();
131
+ }
132
+ }
133
+
76
134
private void drawAntImage (Graphics g ) {
77
135
try {
78
136
if (antImage == null ){
79
137
antImage = ImageIO .read (getClass ().getResource ("/assets/images/ant.png" ));
80
138
}
81
- g .setColor (Color . WHITE );
139
+ g .setColor (boardDefaultColor );
82
140
g .fillRect (getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize ());
83
141
g .drawImage (antImage , getXpixel (), getYpixel (), Game .getTileSize (), Game .getTileSize (), null );
84
142
} catch (IOException e ) {
0 commit comments