Package se.egy.graphics
Class TileMap
java.lang.Object
se.egy.graphics.TileMap
- All Implemented Interfaces:
Drawable
Representerar en tilemap för spel. I första hand anpassad till klassen
GameScreeen
.
Tilemapen kan bestå av fördefinierade färger , egenvalda färger eller bilder.
Defaultfärgerna som kan användas för olika tiles (rutor):
0 : BLACK (default) 1 : DARK_GRAY 2 : GRAY 3 : LIGHT:GRAY 4 : RED 5 : GREEN 6 : BLUE 7 : YELLOW 8 : ORANGE 9 : WHITE A : PINK B : CYAN C : MANGENTA D ..F : transparent, Color(0,0,0,0)Fungerar att ange fler än 16 färger/bilder i rutnätet. Ange då färger/bilder med två eller fler platshållare för hex-talen.
00 : 01 : . . . ff :
- Author:
- Henrik Bygren
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionKonstruktor Läser in filen och rutornas storlek.Konstruktor Läser in filen och rutornas storlek.Konstruktor Läser in filen, rutornas storlek och en array med tile-bilder. -
Method Summary
Modifier and TypeMethodDescriptionvoid
draw
(Graphics2D g) Renderar Rutnätet på ett grafikobjektint
getCols()
Antal kolumner i map-filenint
getRows()
Antal rader i map-filenint
getTile
(double col, double row) Hämtar en specifik rutas värde i rutnätetgetTileCoordinateFromPX
(double x, double y) Omvandlar en pixel-koordinat till en tile-mapkoordinat.int
getTileFromPx
(double x, double y) Hämtar en specifik rutas värde i rutnätet med utgångsdpunkt från en punkt på skärmen (px).int
höjden i px på tilemapint
Bredden i px på tilemapTile[]
getTilesFromRect
(int x, int y, int width, int height) Returnerar array med tile från de fyra hörnen i rectangeln befinner sig i.Tile[]
getTilesFromSquare
(int x, int y, int side) Returnerar Tile-array med tiles från de fyra hörnen i kvadraten befinner sig i.Första position i array:en (0) är övre vänstra hörn.int
Storleken på varje rutavoid
setTile
(int col, int row, int value) Ändrar en specifik rutas värde i rutnätetvoid
setTileFromPx
(double x, double y, int value) Ändrar en specifik rutas värde i rutnätet med utgångsdpunkt från en punkt på skärmen (px) punkten som anges måste befinna sig i rutan.
-
Constructor Details
-
TileMap
Konstruktor Läser in filen och rutornas storlek. I textfilen skall det på- rad 1 stå antal kolumner (x)
- rad 2 stå antalet rader (y)
- övriga rader skrivas in en rad med ett heltal (hexadecimalt) för varje ruta. Separera rutorna med mellanslag.
- Parameters:
pathToMap
- Sökvägen till textfilen med rutnätettileSize
- Rutornas storlek i px
-
TileMap
Konstruktor Läser in filen och rutornas storlek. I textfilen skall det på- rad 1 stå antal kolumner (x)
- rad 2 stå antalet rader (y)
- övriga rader skrivas in en rad med ett heltal (hexadecimalt) för varje ruta. Separera rutorna med mellanslag.
- Parameters:
pathToMap
- Sökvägen till textfilen med rutnätettileSize
- Rutornas storlek i pxcolorArray
- färger för olika tiles, max 256 färger.
-
TileMap
Konstruktor Läser in filen, rutornas storlek och en array med tile-bilder. I textfilen skall det på- rad 1 stå antal kolumner (x)
- rad 2 stå antalet rader (y)
- övriga rader skrivas in en rad med ett heltal (hexadecimalt) för varje ruta. Separera rutorna med mellanslag.
- Parameters:
pathToMap
- Sökvägen till textfilen med rutnätettileSize
- Rutornas storlek i pxtileImgArray
- bilder för olika tiles, max 256 bilder.
-
-
Method Details
-
draw
Renderar Rutnätet på ett grafikobjekt -
getRows
public int getRows()Antal rader i map-filen- Returns:
- antalet rader
-
getCols
public int getCols()Antal kolumner i map-filen- Returns:
- antalet kolumner
-
getTileMapWidthInPx
public int getTileMapWidthInPx()Bredden i px på tilemap- Returns:
- bredden i px
-
getTileMapHeightInPx
public int getTileMapHeightInPx()höjden i px på tilemap- Returns:
- höjden i px
-
getTileSize
public int getTileSize()Storleken på varje ruta- Returns:
- Storleken i px på rutorna
-
getTile
public int getTile(double col, double row) Hämtar en specifik rutas värde i rutnätet- Parameters:
col
- rutans kolumnnummerrow
- rutans radnummer- Returns:
- Värdet i rutan. Om ingen ruta hittas -1.
-
getTileFromPx
public int getTileFromPx(double x, double y) Hämtar en specifik rutas värde i rutnätet med utgångsdpunkt från en punkt på skärmen (px).- Parameters:
x
- punktens position i x-ledy
- punktens position i y-led- Returns:
- rutans värde i rutnätet. Om ingen ruta hittas -1.
-
getTilesFromRect
Returnerar array med tile från de fyra hörnen i rectangeln befinner sig i. Första position i array:en (0) är övre vänstra hörn. Där efter i klockans riktning. 0---1 |---| 3---2- Parameters:
x
- i pxy
- i pxwidth
- i pxheight
- i px- Returns:
- array Tiles-array för de fyra hörnen.
-
getTilesFromSquare
Returnerar Tile-array med tiles från de fyra hörnen i kvadraten befinner sig i.Första position i array:en (0) är övre vänstra hörn. Där efter i klockans riktning. 0---1 |---| 3---2- Parameters:
x
- y-positiony
- y-positionside
- Längden på kvadratens sidor- Returns:
- Tile-array med tiles-värden för de fyra hörnen.
-
setTile
public void setTile(int col, int row, int value) Ändrar en specifik rutas värde i rutnätet- Parameters:
col
- rutans kolumnnummerrow
- rutans radnummervalue
- nya värdet för rutan
-
setTileFromPx
public void setTileFromPx(double x, double y, int value) Ändrar en specifik rutas värde i rutnätet med utgångsdpunkt från en punkt på skärmen (px) punkten som anges måste befinna sig i rutan.- Parameters:
x
- punktens position i x-ledy
- punktens position i y-ledvalue
- nya värdet för rutan
-
getTileCoordinateFromPX
Omvandlar en pixel-koordinat till en tile-mapkoordinat.- Parameters:
x
- pixelkoordinat i x-ledy
- pixelkoordinat i 7-led- Returns:
- Tilemap-koordinat
- See Also:
-