[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 | » 2013-10-25 19:11:02 W tym momencie po poprawkach zaproponowanych przez forumowiczów jak na razie tekst nie miga i nie nakłada się ale po kliknięciu przewija mi po całej tablicy a chciałbym żeby wyświetlało tylko jeden element, a następny dopiero po następnym kliknięciu | 
|  | 
| RazzorFlame | » 2013-10-25 19:15:24 if( zdarzenie.type == sf::Event::Closed ) {
 window.close();
 }
 
 if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Left )
W drugim ifie użyj else if. | 
|  | 
| wiewir1107 Temat założony przez niniejszego użytkownika | » 2013-10-25 19:19:13 w sensie tak: if( zdarzenie.type == sf::Event::Closed ) {
 window.close();
 }
 
 else if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Left ) {
 if( !wyswietlanie )
 wyswietlanie = true;
 else
 wyswietlanie = false;
 
 }
 
 }
czy ze  if( !wyswietlanie )wyswietlanie = true;
 else if( co tu ? )
 wyswietlanie = false;
 
 }
 | 
|  | 
| RazzorFlame | » 2013-10-25 19:23:19 W tym pierwszym sensie :) | 
|  | 
| wiewir1107 Temat założony przez niniejszego użytkownika | » 2013-10-25 19:26:00 to wciąż nie pomaga w razie co daje mój obecny kod: #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 ];
 bool wyswietlanie = false;
 
 int main()
 {
 (...) - uzupelnianie tablicy;
 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 );
 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 );
 
 
 while( window.isOpen() ) {
 
 sf::Event zdarzenie;
 while( window.pollEvent( zdarzenie ) ) {
 
 if( zdarzenie.type == sf::Event::Closed ) {
 
 window.close();
 }
 
 else if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Left ) {
 if( !wyswietlanie )
 wyswietlanie = true;
 else
 wyswietlanie = false;
 
 }
 
 }
 if( wyswietlanie ) {
 window.clear();
 powtorzenia[ numer ] = true;
 
 
 
 sf::Text tekst( uczniowie[ numer ], font );
 
 
 window.draw( tekst );
 
 
 
 while( powtorzenia[ numer ] ) {
 numer =( rand() % 31 );
 }
 
 }
 
 window.display();
 
 
 }
 
 
 return 0;
 }
 | 
|  | 
| RazzorFlame | » 2013-10-25 19:31:12 Kod wstawiaj miedzy  [cpp]tutaj kod[/cpp] A tak w ogóle to  wyswietlanie  jest równe false dopiero jak ponownie  wcisniesz przycisk myszy. Dlatego co obrót pętli losujesz nowy string. Tekst wyświetlaj cały czas (nie tylko kiedy wyswietlanie == true) a przy przycisnieciu myszy losuj następnego. Edit: while( window.isOpen() ) {
 sf::Event zdarzenie;
 while( window.pollEvent( zdarzenie ) ) {
 
 if( zdarzenie.type == sf::Event::Closed ) {
 
 window.close();
 }
 
 else if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Left ) {
 while( powtorzenia[ numer ] ) {
 numer =( rand() % 31 );
 }
 }
 
 }
 window.clear();
 powtorzenia[ numer ] = true;
 
 sf::Text tekst( uczniowie[ numer ], font );
 window.draw( tekst );
 window.display();
 }
 return 0;
 }
 
 | 
|  | 
| wiewir1107 Temat założony przez niniejszego użytkownika | » 2013-10-26 13:00:08 Dzięki wielkie i tylko ostatnie pytanko co zrobić żeby wyświetlały się polskie znaki? Wiem, że to pewnie jest gdzieś w kursie ale jak już pisałem wcześniej niestety muszę to zrobić jak najszybciej i średnio mam czas na przeszukiwanie kursu w poszukiwaniu tego | 
|  | 
| DejaVu | » 2013-10-26 13:06:08 Jeden temat = jeden problem. | 
|  | 
| 1 2 « 3 » |