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

[SFML] term does not evaluate to a function taking 0 arguments

Ostatnio zmodyfikowano 2013-07-31 12:55
Autor Wiadomość
domin568
Temat założony przez niniejszego użytkownika
[SFML] term does not evaluate to a function taking 0 arguments
» 2013-07-31 11:32:51
Witam , zaczynam tworzyć menu do mojej przyszłej gry , zapakowałem wszystko (prawie wszystko) w klasy , oraz napisałem instrukcje warunkową sprawdzającą czy myszka jest na odpowiednim polu . Wyskakuje mi błąd taki jak w temacie . Tutaj wszystkie kody związane z problemem :

main.cpp
C/C++
int _tmain( int argc, _TCHAR * argv[] )
{
    sf::Event zdarzenie;
    sf::RenderWindow okno( sf::VideoMode( 640, 480, 32 ), "Pierwsze menu" );
   
    sf::Mouse myszka;
    sf::RectangleShape kwadrat;
    Button przycisk( 200, 200, 100, 100, "START", okno, kwadrat );
   
    while( okno.isOpen() )
    {
       
        while( okno.pollEvent( zdarzenie ) )
        {
           
            sf::Vector2f posMouse( myszka.getPosition( okno ).x, myszka.getPosition( okno ).y );
           
           
            if( zdarzenie.type == sf::Event::Closed )
            {
                okno.close();
            }
           
            if( zdarzenie.type == sf::Event::MouseButtonPressed && przycisk.inRectangle( posMouse(), przycisk.getKwadrat() ) == true )
            {
                okno.clear( sf::Color( 255, 0, 0 ) );
            }
           
        }
       
       
       
       
        okno.display();
    }
    return 0;
}

Przycisk.h

C/C++
private:
sf::RectangleShape kwadrat;
public:
Button( float, float, float, float, sf::String, sf::RenderWindow &, sf::RectangleShape kwadrat );

sf::RectangleShape getKwadrat();
bool inRectangle( sf::Vector2f pozycja_myszki, sf::Sprite rect );

bool inRectangle( sf::Vector2f pozycja_myszki, sf::RectangleShape rect );

Przycisk.cpp

C/C++
sf::RectangleShape Button::getKwadrat()
{
    return kwadrat;
}

bool Button::inRectangle( sf::Vector2f pozycja_myszki, sf::RectangleShape rect )
{
   
   
    if( rect.getGlobalBounds().contains( pozycja_myszki ) )
    {
        return true;
    }
    else return false;
   
}

bool Button::inRectangle( sf::Vector2f pozycja_myszki, sf::Sprite rect )
{
   
    if( rect.getGlobalBounds().contains( pozycja_myszki ) )
    {
        return true;
    }
    else return false;
   
}

Button::Button( float x, float y, float a, float b, sf::String string, sf::RenderWindow & okno, sf::RectangleShape kwadrat )
{
    sf::Font czcionka;
    sf::Text text;
    Button::setRozmiarCzcionki( text, 18 );
    Button::loadFont( czcionka, "arial.ttf" );
    Button::setFont( text, czcionka );
    Button::setText( text, string );
    Button::setColorText( text, 255, 0, 0 );
    Button::setSizePrzycisk( a, b, kwadrat );
    Button::setPositionPrzycisk( text, x, y, kwadrat );
}
P-89097
abdi
» 2013-07-31 11:35:38
kompilator napewno powiedział w której linii występuje błąd.
P-89098
domin568
Temat założony przez niniejszego użytkownika
» 2013-07-31 11:37:30
Przepraszam , mój błąd :
if( zdarzenie.type == sf::Event::MouseButtonPressed && przycisk.inRectangle( posMouse(), przycisk.getKwadrat() ) == true )
P-89099
domin568
Temat założony przez niniejszego użytkownika
» 2013-07-31 12:55:06
Problem rozwiązany , użyłem w tym wypadku Vectora2f jako funkcji , a trzeba było napisać "posMouse" w instrukcji warunkowej .
P-89100
« 1 »
  Strona 1 z 1