[SFML 2.1] migające o nakładające się napisy
Ostatnio zmodyfikowano 2013-10-26 13:06
wiewir1107 Temat założony przez niniejszego użytkownika |
[SFML 2.1] migające o nakładające się napisy » 2013-10-25 08:15:37 Witam jak w temacie mam problem z tym, że napis, który mam wyświetlić po pierwsze miga, a zmianie go na następny nakłada się z poprzednim ale nakładają się zawsze tylko po dwa góra trzy. #include <SFML/Graphics.hpp> #include <cmath> #include <SFML/Window.hpp> #include <string> #include <cstdlib> #include <iostream> #include <ctime> #include <SFML/System.hpp> #include <conio.h>
using namespace std; string uczniowie[ 31 ]; int numer = 0; bool powtorzenia[ 31 ];
int main() { for( int i = 0; i < 31; i++ ) { powtorzenia[ i ] = false; } sf::RenderWindow window( sf::VideoMode( 800, 600, 32 ), "Do tablicy podejdzie: " ); srand( time( NULL ) ); numer =( rand() % 31 ); while( window.isOpen() ) { sf::Event zdarzenie; while( window.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) { window.close(); } if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Left ) { window.clear(); powtorzenia[ numer ] = true; sf::Font font; font.loadFromFile( "arial.ttf" ); sf::Text tekst( uczniowie[ numer ], font ); tekst.setCharacterSize( 30 ); tekst.setStyle( sf::Text::Bold ); tekst.setColor( sf::Color::Red ); window.draw( tekst ); _getch(); while( powtorzenia[ numer ] ) { numer =( rand() % 31 ); } } } window.display(); } return 0; } |
|
akwes |
» 2013-10-25 10:23:37 |
|
wiewir1107 Temat założony przez niniejszego użytkownika |
» 2013-10-25 16:52:50 A gdzie powinienem jestem totalnie zielony i wiem ze powinienem przeczytać cały poradnik ale niestety nie mam czasu bo musze to zrobić jak najszybciej plus to ma się wyświetlać po kliknięciu wiec myślałem że musi być w tej pętli |
|
kubawal |
» 2013-10-25 17:01:06 W pętli głównej. |
|
wiewir1107 Temat założony przez niniejszego użytkownika |
» 2013-10-25 17:22:06 Ale skoro dopiero po kliknięciu chce żeby czyscilo poprzedni napis i rysowalo nowy to nie powinno być w tej pętli?
|
|
kubawal |
» 2013-10-25 17:27:48 bool czyWyswietlac = false; while( win.isOpen() )
{ while( ) { if( ) { czyWyswietlac = true; } } if( czyWyswietlac ) { } }
|
|
wiewir1107 Temat założony przez niniejszego użytkownika |
» 2013-10-25 18:08:14 ok dzięki wielkie, a teraz jeszcze jak to zrobić żeby dany napis zostawał , aż do następnego kliknięcia mój kod wyświetlania wygląda tak if( wyswietlanie ) { window.clear(); powtorzenia[ numer ] = true; sf::Font font; font.loadFromFile( "arial.ttf" ); sf::Text tekst( uczniowie[ numer ], font ); tekst.setCharacterSize( 30 ); tekst.setStyle( sf::Text::Bold ); tekst.setColor( sf::Color::Red ); window.draw( tekst ); _getch(); while( powtorzenia[ numer ] ) { numer =( rand() % 31 ); } } od razu mowie ze jakby dodać po prostu na końcu tej ifki wyswietlanie= false to znowu pojawia się ten problem z miganiem i pokrywaniem tekstu. Czasami przez pierwsze pare nazwisk nie pokrywają się |
|
kubawal |
» 2013-10-25 18:10:30 Pomyśl trochę... bool czyWyswietlac = false; while( win.isOpen() )
{ while( ) { if( ) { if( !czyWyswietlac ) czyWyswietlac = true; else czyWyswietlac = false; } } if( czyWyswietlac ) { } }
|
|
« 1 » 2 3 |