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

[SFML 2.1]Kilka typów zdarzeń naraz / Problem z myszą

Ostatnio zmodyfikowano 2013-08-19 16:34
Autor Wiadomość
KubusiastyKuba
Temat założony przez niniejszego użytkownika
» 2013-08-19 16:16:04
To nie to :(
wkleje caly kod ,moze to cos da
 
C/C++
#include <SFML/Graphics.hpp>
using namespace sf;

int main()
{
    RenderWindow GlowneOkno( VideoMode( 800, 600, 32 ), "Glowne Okno" );
    Font font;
    font.loadFromFile( "POR2.ttf" );
    Text napis;
    napis.setFont( font );
    napis.setString( "Wyjscie" );
    napis.setCharacterSize( 50 );
    napis.setColor( Color::Green );
    napis.setPosition( 200, 100 );
    while( GlowneOkno.isOpen() )
    {
        Event zdarzenie;
        while( GlowneOkno.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == Event::Closed )
                 GlowneOkno.close();
           
            int myszx = zdarzenie.mouseMove.x;
            int myszy = zdarzenie.mouseMove.y;
            FloatRect polenapis = napis.getGlobalBounds();
            if( Mouse::isButtonPressed( Mouse::Left ) && polenapis.contains( myszx, myszy ) )
                 GlowneOkno.close();
           
           
           
        }
        GlowneOkno.clear();
        GlowneOkno.draw( napis );
        GlowneOkno.display();
    }
}
P-90541
ridic14
» 2013-08-19 16:17:18
C/C++
while( GlowneOkno.pollEvent( zdarzenie ) )
{
    if( zdarzenie.type == Event::Closed )
         GlowneOkno.close();
   
} // poza tą pętlą !!!! a nie pod koniec pętli
int myszx = sf::Mouse::getPosition( GlowneOkno ).x;
int myszy = sf::Mouse::getPosition( GlowneOkno ).y;
FloatRect polenapis = napis.getGlobalBounds();
if( Mouse::isButtonPressed( Mouse::Left ) && polenapis.contains( myszx, myszy ) )
     GlowneOkno.close();
P-90542
KubusiastyKuba
Temat założony przez niniejszego użytkownika
» 2013-08-19 16:21:25
to nic nie daje ,dlatego wkleilem stary kod(gdzie warunek jest w petli) :)Wyluzuj :P
P-90543
ridic14
» 2013-08-19 16:23:18
a to chociaż zmieniłeś<jak przeniosłeś za pętlę?>:
int myszx = zdarzenie.mouseMove.x;
 na
int myszx = sf::Mouse::getPosition( GlowneOkno ).x;
P-90544
KubusiastyKuba
Temat założony przez niniejszego użytkownika
» 2013-08-19 16:27:23
nie tego nie zmieniłem ,chciałem szybko cię uspokoić ze cie słucham :)W kazdym razie ta zmiania dziala i jestem ci mega wdzieczny :D jakbys mi jeszcze powiedzial dlaczego tak dziala a po mojemu nie?

Edit:nie trzeba przenosic za petle:)
P-90545
ridic14
» 2013-08-19 16:30:53
chodzi o to:
zdarzenie.mouseMove.x
 to nie zwraca aktualnej pozycji tylko przemieszczenie od ostatniej klatki. Dokumentacja :D -your friend
P-90546
KubusiastyKuba
Temat założony przez niniejszego użytkownika
» 2013-08-19 16:34:47
jak ze juz wszytko wiem :D zamykam temat
P-90547
1 « 2 »
Poprzednia strona Strona 2 z 2