Tworzenie gry – okno nic nie wyświetla

0

Witam, mam kłopot z pisaniem dalej mojej gry. Gdy tworzę w Entity.cpp okno gry to wtedy nic mi się w nim nie wyświetla nawet Window->clear(sf::color::red) nie działa, co zrobić?

#include "Entity.hpp"

void Entity::SetTexture(){
    
    //textura gracza
    
    PlayerTexture.loadFromFile("/Users/OPT-s/Desktop/Dev/Sprites/FreeZe-Player.png");
    PlayerSprite.setTexture(PlayerTexture);
    
    PlayerSprite.setOrigin(800, 800);
    
    PlayerSprite.setScale(0.08, 0.08);
    
    //Textura drzewa
    
    TreeTexture.loadFromFile("/Users/OPT-s/Desktop/Dev/Sprites/Tree.png");
    TreeSprite.setTexture(TreeTexture);
    
    TreeSprite.setOrigin(800, 800);
    
    TreeSprite.setScale(0.16, 0.16);
    
    //textura podłoża
    
    SnowTexture.loadFromFile("/Users/OPT-s/Desktop/Dev/Sprites/SnowMap.png");
    SnowSprite.setTexture(SnowTexture);
    
    PlayerSprite.setOrigin(800, 800);
    
    PlayerSprite.setScale(0.08, 0.08);
}

void Entity::NewWindow(){
    Window = new sf::RenderWindow(sf::VideoMode(1280, 720), "FreeZe");
    
    Window->setFramerateLimit(60);
    
    sf::Image icon;
    icon.loadFromFile("OPT-s Logo.png");
    
    //v.setCenter(PlayerSprite.getPosition().x, PlayerSprite.getPosition().y);
    //v.setSize(1280, 720);
    
    //Window -> setIcon(icon.getSize().x, icon.getSize().y, icon.getPixelsPtr());
    
    while (Window->isOpen())
    {
        
        sf::Event event;
        while (Window->pollEvent(event))
        {
            
            if (event.type == sf::Event::Closed) {
                Window->close();
            }
            
            if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape) {
                Window->close();
            }
        }
    }
    
    SetTexture();
    
    Window->clear(sf::Color::Red);
    Window->draw(PlayerSprite);
    //Window->setView(v);
    Window->display();
        
};
#include <SFML/Graphics.hpp>
#include <stdio.h>

class Entity{
    
public:
    
    sf::RenderWindow *Window;
    
    sf::Texture PlayerTexture;
    sf::Sprite PlayerSprite;
    
    sf::Texture TreeTexture;
    sf::Sprite TreeSprite;
    
    sf::Texture SnowTexture;
    sf::Sprite SnowSprite;
    
    sf::Texture StoneTexture;
    sf::Sprite StoneSprite;
    
    sf::View v;
    
    float hp = 100;
    float cold = 100;
    
    float speed = 2.5f;
    
    void SetTexture();
    void NewWindow();
    
};
0

A czy masz gdzieś funkcję main?
Musisz w mainie utworzyć obiekt Entity i wywołać metodę NewWindow();

0

Mam w main.cpp:

#include "Entity.hpp"

Entity e;
main(){
e.NewWindow();
return EXIT_SUCCESS;
}

Dobra, okazało się że wyświetlanie rzeczy miałem po za pętlą gry. ;)
https://forum.pasja-informatyki.pl/401900/sfml-xcode-nic-sie-nie-wyswietla#a401926

1 użytkowników online, w tym zalogowanych: 0, gości: 1