| Projeto IDJ - Towers Of Madness
    TowerDefenseLovecraftnianoZombicida | 
Classe que modela o TileMap. Mais...
#include <TileMap.h>
| Componentes | |
| class | AStarPryorityQueue | 
| class | LessThanByHeuristic | 
| Métodos Públicos | |
| TileMap (string file, TileSet *tileSet) | |
| Construtor.  Mais... | |
| int & | At (int x, int y, int z=0) const | 
| Obtém o índice do tileMap na posição informada.  Mais... | |
| int & | AtLayer (int index2D, int layer) const | 
| Obtém o índice do tileMap na posição informada.  Mais... | |
| void | Render (Vec2 pos=Vec2(0, 0), bool parallax=false, Vec2 mouse=Vec2(-1,-1)) const | 
| Renderiza o TileMap a partir da posição dada.  Mais... | |
| void | RenderLayer (int layer, Vec2 pos=Vec2(0, 0), bool parallax=false, Vec2 mouse=Vec2(-1,-1)) const | 
| Renderiza a layer informada.  Mais... | |
| int | GetWidth (void) const | 
| Informa a largura do tileMap.  Mais... | |
| int | GetHeight (void) const | 
| Informa a altura do tileMap.  Mais... | |
| int | GetDepth (void) const | 
| Informa o número de layers do tileMap.  Mais... | |
| int | GetCoordTilePos (Vec2 const &mousePos, bool affecteedByZoom, int layer) const | 
| Sobre qual tile o mouse está.  Mais... | |
| void | InsertGO (GameObject *obj, bool checkCollision=true) | 
| Insere GameObjct no tileMap.  Mais... | |
| void | InsertGO (GameObject *obj, Vec2 initialPos) | 
| Insere GameObjct no tileMap ou o posiciona na posição passada caso não seja possivel.  Mais... | |
| void | RemoveGO (int position) | 
| Remove GameObjct no tileMap.  Mais... | |
| void | RemoveGO (void) | 
| Remove GameObjct no tileMap.  Mais... | |
| GameObject * | GetGO (int index) | 
| Obtém GameObject de uma determinada posição do tileMap.  Mais... | |
| void | ShowCollisionInfo (bool show) | 
| Ativa ou desativa a exibição na tela das informações do tileMap de colisão.  Mais... | |
| bool | IsShowingCollisionInfo () | 
| Informa estado a exibição do tilemap de colisão.  Mais... | |
| vector< vector< int > > * | GetTileGroups (int tileType) const | 
| Obtém os groups de tiles.  Mais... | |
| Vec2 | GetTileSize (void) const | 
| Obtém o tamanho de um tile.  Mais... | |
| void | ShowPath (std::shared_ptr< std::vector< int >> path) | 
| Altera o tilemap mostrando o caminho contido em list.  Mais... | |
| std::list< int > * | AStar (int originTile, int destTile, AStarHeuristic *heuristic, std::map< int, double > weightMap) | 
| Calcula o caminho menos custoso entre dois pontos baseado em uma heuristica utilizando o algoritmo A*.  Mais... | |
| void | ObserveMapChanges (TileMapObserver *) | 
| void | RemoveObserver (TileMapObserver *) | 
| GameObject * | FindNearestGO (Vec2 origin, std::string objectDestType, float range=std::numeric_limits< float >::max()) | 
| int64_t | Have (GameObject *obj) | 
| Vê se um dado objeto está no tileMap.  Mais... | |
|  Métodos Públicos inherited from NearestGOFinder | |
| virtual | ~NearestGOFinder () | 
| Métodos Protegidos | |
| void | Load (string file, std::vector< int > &target, bool setOfficialSize=false) | 
| Carrega um arquivo das informações do timeMap.  Mais... | |
| void | SetTileSet (TileSet *tileSet) | 
| Altera o tileSet usado pelo tileMap.  Mais... | |
| Vec2 | CalculateParallaxScrolling (Vec2 num, Vec2 pos, int layer) const | 
| Calcula a paralaxe.  Mais... | |
| bool | Traversable (int index) const | 
| std::vector< int > * | GetNeighbors (int tile) const | 
| Obtém todos os vizinhos de um determinado tile.  Mais... | |
| void | ReportChanges (int tileChanged) | 
| Atributos Protegidos | |
| std::vector< int > | tileMatrix | 
| TileSet * | tileSet | 
| int | mapWidth | 
| int | mapHeight | 
| int | mapDepth | 
| std::vector< GameObject * > | gameObjectMatrix | 
| bool | displayCollisionInfo | 
| vector< TileMapObserver * > | observers | 
Classe que modela o TileMap.
Gerencia um tileMap,internamente possui um tileSet que é usado para renderizar o mapa. Internamente possui três mapas: um para o tileSet, outro para colisão e um terceiro de GameObjects.
| TileMap::TileMap | ( | string | file, | 
| TileSet * | tileSet | ||
| ) | 
| std::list< int > * TileMap::AStar | ( | int | originTile, | 
| int | destTile, | ||
| AStarHeuristic * | heuristic, | ||
| std::map< int, double > | weightMap | ||
| ) | 
Calcula o caminho menos custoso entre dois pontos baseado em uma heuristica utilizando o algoritmo A*.
| originTile | Tile de origem | 
| destTile | Tile de destino | 
| heuristic | Heuristica a ser usada | 
| weightMap | Dicionário com os pesos relacionados a cada tipo de tile do mapa | 
Retorna uma lista com a sequencia dos indices dos tiles que formam o caminho
| int & TileMap::At | ( | int | x, | 
| int | y, | ||
| int | z = 0 | ||
| ) | const | 
Obtém o índice do tileMap na posição informada.
| x | Posição X do tileMap | 
| y | posição Y do tileMap. | 
| z | posição z do tileMap. | 
O valor de retorno é um referência para a posição para que se possa permitir alteração externa. PS: Com grandes poderes vêm grandes responsabilidades.
| int & TileMap::AtLayer | ( | int | index2D, | 
| int | layer | ||
| ) | const | 
Obtém o índice do tileMap na posição informada.
| index2D | índice xy do tileMap,.tal como retornado pelo GetTileMousePos. | 
| layer | Layer da qual queremos obter a informação existente em index2D. | 
O valor de retorno é um referência para a posição para que se possa permitir alteração externa. PS: Com grandes poderes vêm grandes responsabilidades.
Calcula a paralaxe.
| num | coordenada a ser modificada. | 
| pos | posição de começo da tilemap. | 
| layer | Layer da coordenada que ser modificada | 
Ele subtrai da coordenada o produto da câmera pelo incremento da layer.
| 
 | virtual | 
Implementa NearestGOFinder.
| int TileMap::GetCoordTilePos | ( | Vec2 const & | mousePos, | 
| bool | affecteedByZoom, | ||
| int | layer | ||
| ) | const | 
Sobre qual tile o mouse está.
| mousePos | posição do mouse, é passado como referência por motivos de performance | 
| affecteedByZoom | verdadeiro se o tileMap está sofrendo zoom, falso caso contrário. | 
| layer | layer no tileMap do qual se quer obter a posição. | 
Retorna o número de layers(profundidade) do tileMap.Retorna o índice da posição do tileMap relativo à posição do mouse, esse valor pode ser enviado ao método TileMap::At para saber o conteúdo da posição. O valor retornado será negativo e inválido se alguma coordenada do mouse tiver fora dos limites do tileMap. Internamente usa-se busca binária para achar o tile correspondente.
| int TileMap::GetDepth | ( | void | ) | const | 
Informa o número de layers do tileMap.
Retorna o número de layers(profundidade) do tileMap.
| GameObject * TileMap::GetGO | ( | int | index | ) | 
Obtém GameObject de uma determinada posição do tileMap.
Faz-se checagem de limites para saber se a posição desejada existe.
| int TileMap::GetHeight | ( | void | ) | const | 
Informa a altura do tileMap.
Retorna a altura do tileMap em posições.
| 
 | protected | 
Obtém todos os vizinhos de um determinado tile.
| vector< vector< int > > * TileMap::GetTileGroups | ( | int | tileType | ) | const | 
Obtém os groups de tiles.
| tileType | Tipo de tile do qual se quer obter posições | 
Retorna grupos de tiles adjacentes do tipo informado.
| Vec2 TileMap::GetTileSize | ( | void | ) | const | 
Obtém o tamanho de um tile.
O tamanho retornado não leva em consideração zoom, mas leva em consideração escala.
| int TileMap::GetWidth | ( | void | ) | const | 
Informa a largura do tileMap.
Retorna a largura do tileMap em posições.
| int64_t TileMap::Have | ( | GameObject * | obj | ) | 
Vê se um dado objeto está no tileMap.
| obj | Objeto o qual se quer sabe se está no tileMap | 
Se o objeto existir no tileMap de gameObjects do TileMap, sua posição na matriz será informada, caso contrário um valor negativo será retornado.
| void TileMap::InsertGO | ( | GameObject * | obj, | 
| bool | checkCollision = true | ||
| ) | 
Insere GameObjct no tileMap.
| obj | GameObject a ser inserido no tileMap de GameObjects. | 
Utiliza a posição do mouse no momento(que deve ser a mesma do centro do GameObject) para identificar onde o GameObject deve ser colocado no tileMap de GameObjects. Então obj é colocado nessa posição, sua posição é alterada para se encaixar exatamente com o início da posição. Atualiza-se o tileMao de colisão para adicionar a informação que tem um GameObject na posição respectiva.
| void TileMap::InsertGO | ( | GameObject * | obj, | 
| Vec2 | initialPos | ||
| ) | 
Insere GameObjct no tileMap ou o posiciona na posição passada caso não seja possivel.
| obj | GameObject a ser inserido no tileMap de GameObjects. | 
Utiliza a posição do mouse no momento(que deve ser a mesma do centro do GameObject) para identificar onde o GameObject deve ser colocado no tileMap de GameObjects. Então obj é colocado nessa posição, sua posição é alterada para se encaixar exatamente com o início da posição. Atualiza-se o tileMao de colisão para adicionar a informação que tem um GameObject na posição respectiva.
| bool TileMap::IsShowingCollisionInfo | ( | ) | 
Informa estado a exibição do tilemap de colisão.
Retorna verdadeiro se o tileMap de colisão estiver sendo exibido, falso caso contrário.
| 
 | protected | 
Carrega um arquivo das informações do timeMap.
| target | Tilemap onde as informações do arquvio deve ser carregadas. | 
| setOfficialSize | Verdadeiro se a largura, altura e profundiade lidas devem se tornar as oficiais do tilemap. | 
O arquivo deve começar com 3 números: largura, altura e profundidade. Depois disso dever existir um números inteiros igual ao produto dos três números lidos organizados em layers, linhas e colunas. O argumento setOfficialSize deve ser verdadeiro se estiver lendo o arquivo de tileMap relativo com informações do tileSet.
| void TileMap::ObserveMapChanges | ( | TileMapObserver * | obs | ) | 
| void TileMap::RemoveGO | ( | int | position | ) | 
Remove GameObjct no tileMap.
| position | Posição que contém o Gameobject a ser retirado. | 
Atualiza-se o tileMap de colisão para adicionar a informação que tem um GameObject na posição respectiva.
| void TileMap::RemoveGO | ( | void | ) | 
Remove GameObjct no tileMap.
Variação do RemoveGO que internamente faz a busca o GameObject que está debaixo do mouse para remover. Atualiza-se o tileMap de colisão para adicionar a informação que tem um GameObject na posição respectiva.
| void TileMap::RemoveObserver | ( | TileMapObserver * | obs | ) | 
| void TileMap::Render | ( | Vec2 | pos = Vec2(0,0), | 
| bool | parallax = false, | ||
| Vec2 | mouse = Vec2(-1, -1) | ||
| ) | const | 
Renderiza o TileMap a partir da posição dada.
| pos | Valor x,y da câmera, será usado como coordenada de início do tileMap. | 
| parallax | Flag para se ativar ou desativar o parallax das camadas | 
| mouse | Posição do mouse para checar qual tile deve sofre highlight. | 
Renderiza-se todas as layers começando pelas de menor valor numérico de profundidade até as de maior valor numérico. Verifica em qual tile o mouse está para renderizá-lo highlighted.
| void TileMap::RenderLayer | ( | int | layer, | 
| Vec2 | pos = Vec2(0,0), | ||
| bool | parallax = false, | ||
| Vec2 | mouse = Vec2(-1, -1) | ||
| ) | const | 
Renderiza a layer informada.
| layer | Layer a ser renderizada. | 
| pos | Valor x,y da câmera, será usado como coordenada de início do tileMap. | 
| mouse | Posição do mouse para checar qual tile deve sofre highlight. | 
Renderiza-se todas as posições da matriz na layer indicada, com suas alterações sendo feitas por parallaxe. Observação: pode exibir o tileMap de colisão se assim for pedido em ShowCollisionInfo.
| 
 | protected | 
| 
 | protected | 
Altera o tileSet usado pelo tileMap.
O tileSet informado passa a ser usado pelo tileMap.
| void TileMap::ShowCollisionInfo | ( | bool | show | ) | 
Ativa ou desativa a exibição na tela das informações do tileMap de colisão.
Se show for verdadeiro, futuras chamadas à Render fará com que seja exibido o tileMap de colisão. Se shor for falso, futuras chamadas à Render não exibirão o tileMap de colisão.
| void TileMap::ShowPath | ( | std::shared_ptr< std::vector< int >> | path | ) | 
Altera o tilemap mostrando o caminho contido em list.
| 
 | protected | 
se um determinado tile está livre na camada de colisão
| 
 | protected | 
Verdadeiro se as informações de colisão devem ser exibidas no TileMap::Render, falso caso contrário.
| 
 | protected | 
TileMap linearizado de GameObjects
| 
 | protected | 
Número de camadas do TileMap.
| 
 | protected | 
Altura do TileMap.
| 
 | protected | 
Largura do TileMap.
| 
 | protected | 
| 
 | protected | 
Matriz tridimentsional de índices linearizados em um vetor.
 1.8.8
 1.8.8