Skip to content
Snippets Groups Projects
Commit 605ff449 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

added castle tiles

parent ba2efc54
No related branches found
No related tags found
No related merge requests found
Showing
with 196 additions and 87 deletions
No preview for this file type
File added
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
bin/de/deadlocker8/roadgame/resources/castle.png

713 B

bin/de/deadlocker8/roadgame/resources/center_castle.png

635 B

bin/de/deadlocker8/roadgame/resources/center_castle_triangle.png

1.5 KiB

No preview for this file type
......@@ -46,7 +46,7 @@ public class Board
Random random = new Random();
int index = random.nextInt(TileTypes.values().length);
TileTypes tileType = TileTypes.values()[index];
Tile tile = new Tile(tileType.getN(), tileType.getE(), tileType.getS(), tileType.getW());
Tile tile = new Tile(tileType.getN(), tileType.getE(), tileType.getS(), tileType.getW(), tileType.getC());
//random rotation
int rotate = random.nextInt(3);
......
package de.deadlocker8.roadgame.logic;
public enum CenterType
{
EMPTY, CASTLE, CASTLE_TRIANGLE
}
\ No newline at end of file
......@@ -2,5 +2,5 @@ package de.deadlocker8.roadgame.logic;
public enum EdgeType
{
GRASS, ROAD
GRASS, ROAD, CASTLE
}
\ No newline at end of file
......@@ -8,6 +8,9 @@ public class Textures
private Image imageBorder= new Image("de/deadlocker8/roadgame/resources/border.png");
private Image imageGrass = new Image("de/deadlocker8/roadgame/resources/grass.png");
private Image imageRoad = new Image("de/deadlocker8/roadgame/resources/road.png");
private Image imageCastle = new Image("de/deadlocker8/roadgame/resources/castle.png");
private Image imageCenterCastle = new Image("de/deadlocker8/roadgame/resources/center_castle.png");
private Image imageCenterCastleTriangle = new Image("de/deadlocker8/roadgame/resources/center_castle_triangle.png");
public Textures()
{
......@@ -33,4 +36,19 @@ public class Textures
{
return imageRoad;
}
public Image getImageCastle()
{
return imageCastle;
}
public Image getImageCenterCastle()
{
return imageCenterCastle;
}
public Image getImageCenterCastleTriangle()
{
return imageCenterCastleTriangle;
}
}
\ No newline at end of file
......@@ -8,23 +8,26 @@ public class Tile
private EdgeType E;
private EdgeType S;
private EdgeType W;
private CenterType C;
private Point2D position;
public Tile(EdgeType N, EdgeType E, EdgeType S, EdgeType W, int x, int y)
public Tile(EdgeType N, EdgeType E, EdgeType S, EdgeType W, CenterType C, int x, int y)
{
this.N = N;
this.E = E;
this.S = S;
this.W = W;
this.C = C;
this.position = new Point2D(x, y);
}
public Tile(EdgeType N, EdgeType E, EdgeType S, EdgeType W)
public Tile(EdgeType N, EdgeType E, EdgeType S, EdgeType W, CenterType C)
{
this.N = N;
this.E = E;
this.S = S;
this.W = W;
this.C = C;
this.position = null;
}
......@@ -48,6 +51,11 @@ public class Tile
return W;
}
public CenterType getC()
{
return C;
}
public Point2D getPosition()
{
return position;
......
......@@ -2,23 +2,45 @@ package de.deadlocker8.roadgame.logic;
public enum TileTypes
{
ROAD_END(EdgeType.ROAD, EdgeType.GRASS, EdgeType.GRASS, EdgeType.GRASS),
ROAD_STRAIGHT(EdgeType.ROAD, EdgeType.GRASS, EdgeType.ROAD, EdgeType.GRASS),
ROAD_CURVE(EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS, EdgeType.GRASS),
ROAD_T_JUNCTION(EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS),
ROAD_X_JUNCTION(EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD);
ROAD_END(EdgeType.ROAD, EdgeType.GRASS, EdgeType.GRASS, EdgeType.GRASS, CenterType.EMPTY),
ROAD_STRAIGHT(EdgeType.ROAD, EdgeType.GRASS, EdgeType.ROAD, EdgeType.GRASS, CenterType.EMPTY),
ROAD_CURVE(EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS, EdgeType.GRASS, CenterType.EMPTY),
ROAD_T_JUNCTION(EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS, CenterType.EMPTY),
ROAD_X_JUNCTION(EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, CenterType.EMPTY),
CASTLE_SINGLE(EdgeType.CASTLE, EdgeType.GRASS, EdgeType.GRASS, EdgeType.GRASS,CenterType.EMPTY),
CASTLE_TWO_SINGLE_OPPOSITE(EdgeType.CASTLE, EdgeType.GRASS, EdgeType.CASTLE, EdgeType.GRASS, CenterType.EMPTY),
CASTLE_TWO_SINGLE_NEIGHBOR(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.GRASS, EdgeType.GRASS, CenterType.EMPTY),
CASTLE_THREE_SINGLE(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.GRASS, CenterType.EMPTY),
CASTLE_FOUR_SINGLE(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, CenterType.EMPTY),
CASTLE_TRIANGLE(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.GRASS, EdgeType.GRASS, CenterType.CASTLE_TRIANGLE),
CASTLE_TUBE(EdgeType.CASTLE, EdgeType.GRASS, EdgeType.CASTLE, EdgeType.GRASS, CenterType.CASTLE),
CASTLE_FULL(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, CenterType.CASTLE),
CASTLE_SINGLE_ROAD_STRAIGHT(EdgeType.CASTLE, EdgeType.ROAD, EdgeType.GRASS, EdgeType.ROAD,CenterType.EMPTY),
CASTLE_SINGLE_ROAD_CURVE_RIGHT(EdgeType.CASTLE, EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS,CenterType.EMPTY),
CASTLE_SINGLE_ROAD_CURVE_LEFT(EdgeType.CASTLE, EdgeType.GRASS, EdgeType.ROAD, EdgeType.ROAD,CenterType.EMPTY),
CASTLE_SINGLE_ROAD_T_JUNCTION(EdgeType.CASTLE, EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD,CenterType.EMPTY),
CASTLE_TWO_SINGLE_OPPOSITE_ROAD_STRAIGHT(EdgeType.CASTLE, EdgeType.ROAD, EdgeType.CASTLE, EdgeType.ROAD, CenterType.EMPTY),
CASTLE_TWO_SINGLE_NEIGHBOR_ROAD_CURVE(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.ROAD, EdgeType.ROAD, CenterType.EMPTY),
CASTLE_THREE_SINGLE_ROAD_END(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.ROAD, CenterType.EMPTY);
private EdgeType N;
private EdgeType E;
private EdgeType S;
private EdgeType W;
private CenterType C;
private TileTypes(EdgeType n, EdgeType e, EdgeType s, EdgeType w)
private TileTypes(EdgeType n, EdgeType e, EdgeType s, EdgeType w, CenterType c)
{
N = n;
E = e;
S = s;
W = w;
C = c;
}
public EdgeType getN()
......@@ -40,4 +62,9 @@ public enum TileTypes
{
return W;
}
public CenterType getC()
{
return C;
}
}
\ No newline at end of file
src/de/deadlocker8/roadgame/resources/castle.png

713 B

src/de/deadlocker8/roadgame/resources/center_castle.png

635 B

src/de/deadlocker8/roadgame/resources/center_castle_triangle.png

1.5 KiB

......@@ -150,35 +150,85 @@ public class Controller
{
stack.getChildren().add(new ImageView(textures.getImageGrass()));
if(tile.getN().equals(EdgeType.ROAD))
{
ImageView imageViewRoadNorth = new ImageView(textures.getImageRoad());
stack.getChildren().add(imageViewRoadNorth);
//North
stack.getChildren().add(getImageForEdge(tile.getN()));
//East
ImageView imageViewEast = getImageForEdge(tile.getE());
imageViewEast.setRotate(90);
stack.getChildren().add(imageViewEast);
//South
ImageView imageViewSouth = getImageForEdge(tile.getS());
imageViewSouth.setRotate(180);
stack.getChildren().add(imageViewSouth);
//West
ImageView imageViewWest = getImageForEdge(tile.getW());
imageViewWest.setRotate(270);
stack.getChildren().add(imageViewWest);
//Center
ImageView imageViewCenter = getImageForCenter(tile);
stack.getChildren().add(imageViewCenter);
}
if(tile.getE().equals(EdgeType.ROAD))
stack.setStyle("-fx-border-color: #cccccc; -fx-border-width: 1px;");
return stack;
}
private ImageView getImageForEdge(EdgeType edgeType)
{
ImageView imageViewRoadEast = new ImageView(textures.getImageRoad());
imageViewRoadEast.setRotate(90);
stack.getChildren().add(imageViewRoadEast);
switch(edgeType)
{
case GRASS:
return new ImageView(textures.getImageEmpty());
case ROAD:
return new ImageView(textures.getImageRoad());
case CASTLE:
return new ImageView(textures.getImageCastle());
default:
return new ImageView(textures.getImageEmpty());
}
}
if(tile.getS().equals(EdgeType.ROAD))
private ImageView getImageForCenter(Tile tile)
{
ImageView imageViewRoadSouth = new ImageView(textures.getImageRoad());
imageViewRoadSouth.setRotate(180);
stack.getChildren().add(imageViewRoadSouth);
switch(tile.getC())
{
case EMPTY:
return new ImageView(textures.getImageEmpty());
case CASTLE:
return new ImageView(textures.getImageCenterCastle());
case CASTLE_TRIANGLE:
ImageView iv = new ImageView(textures.getImageCenterCastleTriangle());
if(tile.getN().equals(EdgeType.CASTLE))
{
if(tile.getW().equals(EdgeType.CASTLE))
{
//North and West
iv.setRotate(270);
}
}
if(tile.getW().equals(EdgeType.ROAD))
if(tile.getS().equals(EdgeType.CASTLE))
{
if(tile.getE().equals(EdgeType.CASTLE))
{
ImageView imageViewRoadWest = new ImageView(textures.getImageRoad());
imageViewRoadWest.setRotate(270);
stack.getChildren().add(imageViewRoadWest);
//South and East
iv.setRotate(90);
}
else
{
//South and West
iv.setRotate(180);
}
}
return stack;
return iv;
default:
return new ImageView(textures.getImageEmpty());
}
}
private boolean isInPossibleLocations(ArrayList<Point2D> possibleLocations, Point2D center, int x, int y)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment