Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.1] migające o nakładające się napisy

Ostatnio zmodyfikowano 2013-10-26 13:06
Autor Wiadomość
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
P-94545
RazzorFlame
» 2013-10-25 19:15:24
C/C++
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.
P-94546
wiewir1107
Temat założony przez niniejszego użytkownika
» 2013-10-25 19:19:13
w sensie tak:
C/C++
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
C/C++
if( !wyswietlanie )
     wyswietlanie = true;
else if( co tu ? )
     wyswietlanie = false;

}
P-94547
RazzorFlame
» 2013-10-25 19:23:19
W tym pierwszym sensie :)
P-94548
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:
C/C++
#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;
            //wyswietlenie ucznia
           
           
            sf::Text tekst( uczniowie[ numer ], font );
           
           
            window.draw( tekst );
           
           
           
            while( powtorzenia[ numer ] ) {
                numer =( rand() % 31 );
            }
           
        }
       
        window.display();
       
       
    }
   
   
    return 0;
}
P-94549
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:
C/C++
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;
    //wyswietlenie ucznia
    sf::Text tekst( uczniowie[ numer ], font );
    window.draw( tekst );
    window.display();
}
return 0;
}
P-94550
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
P-94596
DejaVu
» 2013-10-26 13:06:08
Jeden temat = jeden problem.
P-94597
1 2 « 3 »
Poprzednia strona Strona 3 z 3