Class TileMap

java.lang.Object
se.egy.graphics.TileMap
All Implemented Interfaces:
Drawable

public class TileMap extends Object implements 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

    Constructors
    Constructor
    Description
    TileMap(String pathToMap, int tileSize)
    Konstruktor Läser in filen och rutornas storlek.
    TileMap(String pathToMap, int tileSize, Color[] colorArray)
    Konstruktor Läser in filen och rutornas storlek.
    TileMap(String pathToMap, int tileSize, Image[] tileImgArray)
    Konstruktor Läser in filen, rutornas storlek och en array med tile-bilder.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Renderar Rutnätet på ett grafikobjekt
    int
    Antal kolumner i map-filen
    int
    Antal rader i map-filen
    int
    getTile(double col, double row)
    Hämtar en specifik rutas värde i rutnätet
    getTileCoordinateFromPX(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å tilemap
    int
    Bredden i px på tilemap
    getTilesFromRect(int x, int y, int width, int height)
    Returnerar array med tile från de fyra hörnen i rectangeln befinner sig i.
    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 ruta
    void
    setTile(int col, int row, int value)
    Ändrar en specifik rutas värde i rutnätet
    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.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TileMap

      public TileMap(String pathToMap, int tileSize)
      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ätet
      tileSize - Rutornas storlek i px
    • TileMap

      public TileMap(String pathToMap, int tileSize, Color[] colorArray)
      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ätet
      tileSize - Rutornas storlek i px
      colorArray - färger för olika tiles, max 256 färger.
    • TileMap

      public TileMap(String pathToMap, int tileSize, Image[] tileImgArray)
      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ätet
      tileSize - Rutornas storlek i px
      tileImgArray - bilder för olika tiles, max 256 bilder.
  • Method Details

    • draw

      public void draw(Graphics2D g)
      Renderar Rutnätet på ett grafikobjekt
      Specified by:
      draw in interface Drawable
      Parameters:
      g - grafikobjekt där rutnätet skall renderas
    • 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 kolumnnummer
      row - 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-led
      y - punktens position i y-led
      Returns:
      rutans värde i rutnätet. Om ingen ruta hittas -1.
    • getTilesFromRect

      public Tile[] getTilesFromRect(int x, int y, int width, int height)
      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 px
      y - i px
      width - i px
      height - i px
      Returns:
      array Tiles-array för de fyra hörnen.
    • getTilesFromSquare

      public 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. Där efter i klockans riktning. 0---1 |---| 3---2
      Parameters:
      x - y-position
      y - y-position
      side - 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 kolumnnummer
      row - rutans radnummer
      value - 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-led
      y - punktens position i y-led
      value - nya värdet för rutan
    • getTileCoordinateFromPX

      public Point getTileCoordinateFromPX(double x, double y)
      Omvandlar en pixel-koordinat till en tile-mapkoordinat.
      Parameters:
      x - pixelkoordinat i x-led
      y - pixelkoordinat i 7-led
      Returns:
      Tilemap-koordinat
      See Also: