You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.0 KiB
57 lines
1.0 KiB
#include "Map.h"
|
|
#include <stdlib.h>
|
|
|
|
|
|
Map::Map() {
|
|
Init();
|
|
}
|
|
|
|
|
|
Map::~Map() {
|
|
}
|
|
|
|
|
|
|
|
Tile* Map::getTile(sf::Vector2i position_) {
|
|
if (position_.x > CELLS_WIDTH || position_.x < 0
|
|
|| position_.y > CELLS_HEIGHT || position_.y < 0) {
|
|
return nullptr;
|
|
}
|
|
|
|
return tileArray[position_.x][position_.y];
|
|
}
|
|
|
|
bool Map::isTileSolid(sf::Vector2i position_) {
|
|
if (position_.x >= CELLS_WIDTH || position_.x < 0
|
|
|| position_.y >= CELLS_HEIGHT || position_.y < 0) {
|
|
return true;
|
|
}
|
|
else
|
|
return tileArray[position_.x][position_.y]->isSolid();
|
|
}
|
|
Tile* Map::getTile(int x_, int y_) {
|
|
return tileArray[x_][y_];
|
|
}
|
|
|
|
void Map::setTile(sf::Vector2i position, Tile* data) {
|
|
delete tileArray[position.x][position.y];
|
|
tileArray[position.x][position.y] = data;
|
|
}
|
|
|
|
void Map::Init() {
|
|
int q;
|
|
|
|
for (int x = 0; x < CELLS_WIDTH; x++) {
|
|
for (int y = 0; y < CELLS_HEIGHT; y++) {
|
|
q = rand() % 100;
|
|
if (q > 90) {
|
|
tileArray[x][y] = new Tile(true, 100.0, sf::Color::Cyan);
|
|
}
|
|
else {
|
|
tileArray[x][y] = new Tile(false, 0.0, sf::Color::Red);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|