• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SFML Xcode - Nic się nie wyświetla.

0 głosów
424 wizyt
pytanie zadane 22 grudnia 2018 w C i C++ przez NintyS Użytkownik (940 p.)

Witam, mam problem ( inaczej by mnie tu nie było ;) ) gdy tworzę nowy projekt SFML to działa, ale jak stworzę okno gry w klasie to nie działa nic, znaczy wyświetla się nazwa okna i rozdzielczość ale nic w oknie nawet kolor okna ( sf::Color::Red ), CO jest nie tak.

#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();
        
};

 

1 odpowiedź

0 głosów
odpowiedź 23 grudnia 2018 przez Munvik Dyskutant (9,350 p.)
wybrane 23 grudnia 2018 przez NintyS
 
Najlepsza
SetTexture();
     
    Window->clear(sf::Color::Red);
    Window->draw(PlayerSprite);
    //Window->setView(v);
    Window->display();

Masz poza pętlą gry.

Korzystaj z debuggera

komentarz 23 grudnia 2018 przez NintyS Użytkownik (940 p.)
W tym problem że debugger nie wyświetla mi błędu... Tylko ostrzeżenie o <math.h>. Ale ThX za pomoc działa ;)
komentarz 23 grudnia 2018 przez Munvik Dyskutant (9,350 p.)

Debugger to co innego, niż wyjście kompilacji. 

Debugerem możesz sprawdzić, czy konkretne linijki kodu się wykonały. W tym przypadku te linijki, które wyżej podałem. Debugger pozwala na wiele więcej. Stopniowo radziłbym się do niego przyzwyczajać bo jest bezcenny laugh

 

Podobne pytania

0 głosów
2 odpowiedzi 477 wizyt
pytanie zadane 18 kwietnia 2018 w C i C++ przez Emil Panecki Bywalec (2,100 p.)
0 głosów
0 odpowiedzi 634 wizyt
pytanie zadane 7 kwietnia 2018 w C i C++ przez Emil Panecki Bywalec (2,100 p.)
0 głosów
0 odpowiedzi 789 wizyt
pytanie zadane 26 października 2016 w C i C++ przez neos Początkujący (320 p.)

93,766 zapytań

142,723 odpowiedzi

323,374 komentarzy

63,360 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...