[SFML] Klasa z funkcją rysującą na ekranie
Ostatnio zmodyfikowano 2013-12-20 21:41
kokon Temat założony przez niniejszego użytkownika |
[SFML] Klasa z funkcją rysującą na ekranie » 2013-12-14 12:48:40 Witam, mam problem z klasą służącą do wyświetlania czegoś na ekranie (w tym przypadku tekstu). Kod klasy (jeszcze nie skończona, dlatego wszystko jest zostawione na public :P): class dymeczek { public: short polozeniewys; short polozenieszer; short przezroczystosc; sf::Text * tekst; std::string napis; bool renderend; dymeczek() { this->renderend = true; } void render( sf::RenderWindow * okieneczko ) { if( !renderend ) { std::cout << "Renderuje sie! ~Dymek" << std::endl; okieneczko.draw( this->tekst ); }; }; void settext( std::string a ) { this->napis = a; this->tekst = new sf::Text(); this->tekst->setCharacterSize( 30 ); this->tekst->setString( this->napis ); this->tekst->setPosition( 0, 0 ); this->renderend = false; }; }; Problem znajduje się tu: okieneczko.draw( this->tekst ); . Próbowałem zmieniać na wiele sposobów tą linijkę, dodawałem globalne funkcje rysujące na ekranie, ale nic to nie daje. Zawsze mam masę błędów. Jak usunę tą linię to wszystko działa. Tu kod używający tej funkcji: for( int i = 0; i < 20; i++ ) { powiadomienie[ i ]->render( gamescreen ); }; Z góry dziękuję za pomoc. EDIT: Kod okna ;P sf::RenderWindow oknoAplikacji( sf::VideoMode( 1280, 680, 32 ), "---" ); sf::RenderWindow * gamescreen = & oknoAplikacji;
|
|
MrPoxipol |
» 2013-12-14 13:37:56 Nie widzę, żebyś gdzieś ustawiał czcionkę.
PS Straszny kod masz. |
|
kokon Temat założony przez niniejszego użytkownika |
» 2013-12-14 14:16:31 Już dodałem, ale nadal mam błędy (próbowałem okieneczko->draw( this->tekst ); jakby co). PS: Czemu mam straszny kod? |
|
MrPoxipol |
» 2013-12-14 14:29:18 Pokaż aktualny kod. Czemu straszny kod? Nie trzymasz się jednego stylu w kodzie (różne nazewnictwo). Dla osoby, która nie jest autorem, ten kod może być (i jest) nieczytelny. |
|
kokon Temat założony przez niniejszego użytkownika |
» 2013-12-14 14:48:32 class dymeczek { public: short polozeniewys; short polozenieszer; short przezroczystosc; sf::Text * tekst; std::string napis; bool renderend; dymeczek() { this->renderend = true; } void render( sf::RenderWindow * okieneczko ) { if( !renderend ) { std::cout << "Renderuje sie! ~Dymek" << std::endl; okieneczko->draw( this->tekst ); }; }; void settext( std::string a ) { this->napis = a; this->tekst = new sf::Text(); this->tekst->setCharacterSize( 30 ); this->tekst->setString( this->napis ); this->tekst->setPosition( 0, 0 ); this->tekst->setFont( bebas ); this->tekst->setColor( sf::Color::White ); this->renderend = false; }; }; ||=== SFMLtest, Debug ===| main.cpp||In member function 'void dymeczek::render(sf::RenderWindow*)':| main.cpp|43|error: no matching function for call to 'sf::RenderWindow::draw(sf::Text*&)'| main.cpp|43|note: candidates are:| C:\Biblioteki c++\SFML-2.1\include\SFML\Graphics\RenderTarget.hpp|236|note: void sf::RenderTarget::draw(const sf::Drawable&, const sf::RenderStates&)| C:\Biblioteki c++\SFML-2.1\include\SFML\Graphics\RenderTarget.hpp|236|note: no known conversion for argument 1 from 'sf::Text*' to 'const sf::Drawable&'| C:\Biblioteki c++\SFML-2.1\include\SFML\Graphics\RenderTarget.hpp|247|note: void sf::RenderTarget::draw(const sf::Vertex*, unsigned int, sf::PrimitiveType, const sf::RenderStates&)| C:\Biblioteki c++\SFML-2.1\include\SFML\Graphics\RenderTarget.hpp|247|note: candidate expects 4 arguments, 1 provided| ||=== Build finished: 1 errors, 0 warnings (0 minutes, 0 seconds) ===|
|
|
MrPoxipol |
» 2013-12-14 15:37:35 okno.draw( * text ) Skoro masz wskaźnik... /edit: class Tip { private: sf::Text text; std::string str; bool isRendered; public: Tip() { isRendered = false; } void setText( const std::string & str ) { this->str = str; this->text.setFont( font ); this->text.setCharacterSize( 20 ); this->text.setString( this->str ); this->text.setPosition( 0, 0 ); this->isRendered = true; } void render( sf::RenderTarget & target ) { if( this->isRendered ) { target.draw( this->text ); } } }; |
|
kokon Temat założony przez niniejszego użytkownika |
» 2013-12-20 21:41:17 Dzięki wielkie :D Sory że teraz odpisuję, ale wyjechałem :P |
|
« 1 » |