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

[SFML2] Zgeneralizowane klikanie

Ostatnio zmodyfikowano 2016-02-15 15:25
Autor Wiadomość
djmaxior
Temat założony przez niniejszego użytkownika
[SFML2] Zgeneralizowane klikanie
» 2016-02-12 01:25:38
C/C++
bool Clicked( sf::Event event, bool tap, int x, int y, sf::Vector2i window )
{
    if( !tap )
    if(( sf::Mouse::getPosition().x - window.x > x )
    &&( sf::Mouse::getPosition().y - window.y > y )
    &&( sf::Mouse::getPosition().x - window.x < x + 119 )
    &&( sf::Mouse::getPosition().y - window.y < y + 166 )
    &&( event.mouseButton.button == sf::Mouse::Left ) )
         return true;
    else if( tap )
    if(( sf::Mouse::getPosition().x - window.x > x )
    &&( sf::Mouse::getPosition().y - window.y > y )
    &&( sf::Mouse::getPosition().x - window.x < x + 166 )
    &&( sf::Mouse::getPosition().y - window.y < y + 119 )
    &&( event.mouseButton.button == sf::Mouse::Left ) )
         return true;
   
    return false;
}

...

switch( EventH.type )
{
case sf::Event::MouseButtonPressed:
    for( int i = 0; i = Deck.Size(); i++ )
    if( Clicked( EventH, false, 35 +( i * 140 ), 35, HandWin.getPosition() ) )
    {
        std::cout << "PONG!" << endl;
        /*CritTab.Insert(Deck.getout(i));
                                Window.draw(CritTab.show(0).print(300,350));*/
        break;
    }
    else break;
   

A więc mam stworzoną funkcję odpowiadającą na klikanie w danym obszarze (bez loopa if działa), i chcę mieć loop pozwalający mi na kliknięcie dowolnej karty na stole. Co robię nie tak? A może jest jakaś dużo prostsza biblioteka na przedstawienie kart w c++?
P-144773
Gibas11
» 2016-02-12 14:56:06
i = Deck.Size()
 - Z tym warunkiem coś chyba jest nie tak.
P-144782
djmaxior
Temat założony przez niniejszego użytkownika
» 2016-02-15 11:38:10
to jest poprawione, co jednak nie pozbawia mnie problemu, funkcja reaguje tylko na klikniecie pierwszej karty, gdzie powinna reagować na 60 w chwili obecnej.
P-144891
SeaMonster131
» 2016-02-15 15:25:20
Reaguje tylko na jedną kartę, ponieważ po pierwszym przejściu pętli, wychodzisz z niej.
C/C++
else break;

P-144897
« 1 »
  Strona 1 z 1