проблема с выведение изображения на экран SFML

написал массив String он будет структурой карты и знаки которые будут в массиве будут по идеи квадратами, но сам массив не выводится на экран-дисплей, игру пишу по этому видео https://youtu.be/6OHMFwQK44k

сам код

#include <GL/glut.h>
#include <iostream>
#include <SFML/Graphics.hpp>

using namespace sf;
using namespace std;

const int H = 12;
const int W = 40;

String tilemap[H] = {

"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"B                                B     B",
"B                                B     B",
"B                                B     B",
"B                                B     B",
"B                             BBBB     B",
"B                                B     B",
"BBB                              B     B",
"B              BB                BB    B",
"B              BB                      B",
"B    B         BB         BB           B",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",

};


class PLAYER{
public:
    float dx, dy;
    FloatRect rect; //    rect(x, y, width, heigth)
    Sprite sprite;// загрузка картинки
    float currentFrame;// текущий кадр анимации

    PLAYER(Texture& image)
    {
        sprite.setTexture(image);// загружаем картинку
        rect = FloatRect(50, 0, 94, 134);// координаты

        dx = dy = 0;
        currentFrame = 0;



    }

    void update(float time)
    {
        rect.left += dx * time;
        rect.top += dy * time;
        currentFrame += 0.005 * time;
        if (currentFrame > 3) { currentFrame -= 3; }
        
        if (dx < 0)  sprite.setTextureRect(IntRect(94 * int(currentFrame), 0, 64, 134));// 94 отвечает на каком расстоянии надо перейти на следующий спрайт, 0 отвечает за тоже самое но по Y координате, 64 размер ХБ 134 размер Y
        if (dx > 0)  sprite.setTextureRect(IntRect(94 * int(currentFrame)+94, 0, -64, 134));// 94 отвечает на каком расстоянии надо перейти на следующий спрайт, 0 отвечает за тоже самое но по Y координате, 64 размер ХБ 134 размер Y
        sprite.setPosition(rect.left, rect.top);

        dx = 0;
        dy = 0;
    }


};



int main()
{
    RenderWindow window(VideoMode(600, 600), "SFML works!");
    //CircleShape shape(100.f);
    //shape.setFillColor(Color::Green);

    Texture t;
    t.loadFromFile("player.png");


    PLAYER p(t);

    Clock clock;

    RectangleShape rectengle;

    while (window.isOpen())
    {


        float time = clock.getElapsedTime().asMicroseconds();

        clock.restart();

        time = time / 800;


        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
        }

        if (Keyboard::isKeyPressed(Keyboard::A))
        {
            p.dx = -0.1;
        }

        if (Keyboard::isKeyPressed(Keyboard::D))
        {
            p.dx = 0.1;
        }
        if (Keyboard::isKeyPressed(Keyboard::W))
        {
            p.dy = -0.1;
        }
        if (Keyboard::isKeyPressed(Keyboard::S))
        {
            p.dy = 0.1;
        }
        p.update(time);

        window.clear(Color::White);

        for (int i = 0; i < H; i++)
            for (int j = 0; j < W; j++)
                {
            
                if (tilemap[i][j] == 'B')
                    rectengle.setFillColor(Color::Black);
                if (tilemap[i][j] == ' ') 
                    continue;

                rectengle.setPosition(j * 32, i * 32);
                window.draw(rectengle);
            }

        window.draw(p.sprite); 
        window.display();
    }

    return 0;
}

Ответы (0 шт):