[SFML] Dlaczego tekst się nie wyświetla?
Ostatnio zmodyfikowano 2015-06-10 21:00
marc_xxx Temat założony przez niniejszego użytkownika |
[SFML] Dlaczego tekst się nie wyświetla? » 2015-06-08 18:41:07 Witam. Mam, na pewno, prosty problem, którego nie potrafię rozwiązać. Stworzyłem klasę menu, w której powinny być jakieś przyciski. Dodałem jeden przycisk ale nie wyświetla się. Jak rozwiązać problem? Część pliku main.cpp Menu menu( "menuBackground.jpg" ); menu.addButton( "START", "smallee.fon" );
Plik Menu.hpp #ifndef MENU_HPP #define MENU_HPP
#include <SFML/Graphics.hpp> #include <SFML/System.hpp> #include <SFML/Window.hpp> #include <string> #include <vector> #include "Button.hpp"
using namespace std;
class Menu { public: Menu( string backgroundFilename, unsigned short width = 1024, unsigned short height = 768 ); ~Menu(); void draw( sf::RenderWindow & gameWindow ); void addButton( string buttonName, string fontFilename ); private: sf::Texture backgroundImage; sf::Sprite background; vector < Button > buttons; static unsigned short countOfButtons; };
#endif
Część pliku Menu.hpp void Menu::draw( sf::RenderWindow & gameWindow ) { gameWindow.draw( this->background ); for( int i = 0; i < countOfButtons; i++ ) { this->buttons[ i ].draw( gameWindow ); } }
void Menu::addButton( string buttonName, string fontFilename ) { this->buttons.push_back( Button( buttonName, fontFilename ) ); countOfButtons++; }
Plik Button.hpp using namespace std;
class Button { public: Button( string buttonName, string fontFilename ); ~Button(); void draw( sf::RenderWindow & gameWindow ); private: sf::Text buttonText; static sf::Font buttonFont; };
Plik Button.cpp #include "Button.hpp"
sf::Font Button::buttonFont;
Button::Button( string buttonName, string fontFilename ) { this->buttonFont.loadFromFile( fontFilename ); this->buttonText.setFont( buttonFont ); this->buttonText.setString( buttonName ); this->buttonText.setCharacterSize( 24 ); this->buttonText.setColor( sf::Color::Black ); }
Button::~Button() { }
void Button::draw( sf::RenderWindow & gameWindow ) { gameWindow.draw( this->buttonText ); }
Wiem, że dużo tego ale problem jest błahy i chyba nie trzeba przyglądać się całemu programu. Po prostu napis, który dodałem w pliku main menu.addButton( .... ) nie wyświetla się. Zapewne nie dopisałem jakiejś linijki. Proszę o pomoc :) |
|
michal11 |
» 2015-06-08 21:27:20 Nie ustawiasz pozycji sf::Text. Po co ci pole countOfButtons w Menu skoro vector może zwrócić swój rozmiar ? |
|
marc_xxx Temat założony przez niniejszego użytkownika |
» 2015-06-08 21:34:55 Nie to chyba nie jest wina tego że nie ustawiłem pozycji, teraz próbuję ale nic to nie daje ;) wydaje mi się, że problem leży w zapełnianiu vectora w linijce gdzie jest napisane: this->buttons.push_back( Button( buttonName, fontFilename ) ); Nie wiem czy w dobry sposób dodaję tutaj obiekt do vectora. |
|
Lora |
» 2015-06-08 23:46:58 Sprawdź czy font się poprawnie wczytuje. |
|
marc_xxx Temat założony przez niniejszego użytkownika |
» 2015-06-10 21:00:13 Dobra teraz działa, problem był z czcionką - SFML nie czyta czcionek z rozszerzeniem .fon (ja użyłem .ttf). Czemu na to na początku nie wpadłem |
|
« 1 » |