[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 |