Проблема с использованием текстур SFML - PullRequest
1 голос
/ 09 января 2020

Я хочу создать плитку, но когда я запускаю этот код, плитки становятся белыми, у текстуры есть проблема. Я знаю, что из ссылки sf :: Texture здесь говорится, что текстура должна существовать, чтобы спрайт мог ее использовать. Но я не знаю, как это сделать.
Вот код:

class Tile
{
private:
sf::Sprite sprite;
sf::Texture tex;

public:
     Tile(int x, int y, sf::Texture tex)
    {
this->tex = tex;
this->sprite.setTexture(this->tex);
this->sprite.setPosition(x, y);

    }
    void render(sf::RenderWindow* target)
    {
    target->draw(this->sprite);
    }


class Tilemap
{
private:
Tile tiles[36][64];
sf::Texture tex[4];

public:
//const/dest
Tilemap()
{
this->tex[0].loadFromFile("Resources/Tilemap/Water/water1.png");

int x = -WIDTH+WIDTH/2;
int y = -HEIGTH/2;
for (int i = 0; i < 36; i++)
{
    for (int j = 0; j < 64; j++)
    {
        this->tiles[i][j] = Tile(x, y, this->tex[0]);
        x += 60;
    }
    y += 60;
    x = -WIDTH + WIDTH / 2;
}

}


render(sf::RenderWindow* target, sf::Vector2f pos)
{
for (int i = 0; i < 34; i++)
{
    for (int j = 0; j < 64; j++)
    {
        this->tiles[i][j].render(target);
    }
}
 };
 Tilemap map;
 map = Tilemap();

Заранее благодарю за любые ответы:)

1 Ответ

0 голосов
/ 25 января 2020

Я уже решил это сам. У каждой плитки есть один sf::Texture tex, и каждый раз, когда мне нужно изменить его, я просто загружаю его снова из другого файла.

...