Witam
Mam problem ponieważ znalazłem na forum (https://stackoverflow.com/questions/23530360/how-do-you-make-a-clickable-sprite-in-sfml) odpowiedź do mojego pytania i ją zastosowałem :
sprite.getGlobalBounds().contains(mousePos)
i... jak można łatwo się domyśleć nie działa w moim kodzie:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow oknoAplikacji( sf::VideoMode( 640, 480, 32 ), "gra1" );
sf::Texture tekstura;
tekstura.loadFromFile( "C:\\Users\\Miko³aj\\Desktop\\Projekty\\Kurs SFML\\sklep.png" );
sf::Texture tekstura2;
tekstura2.loadFromFile("C:\\Users\\Miko³aj\\Desktop\\Projekty\\Kurs SFML\\fabryka.png");
sf::Texture tekstura3;
tekstura3.loadFromFile("C:\\Users\\Miko³aj\\Desktop\\Projekty\\Kurs SFML\\kopalnia.png");
sf::Sprite obrazek;
obrazek.setTexture( tekstura );
obrazek.setScale( sf::Vector2f( 0.40, 0.40 ) );
sf::Sprite obrazek2;
obrazek2.setTexture(tekstura2);
obrazek2.setScale(sf::Vector2f( 0.40, 0.40 ));
sf::Sprite obrazek3;
obrazek3.setTexture(tekstura3);
obrazek3.setScale(sf::Vector2f( 0.40, 0.40 ));
while( oknoAplikacji.isOpen() )
{
sf::Vector2i pozycjaMyszyWzgledemOkna;
sf::Mouse::getPosition( oknoAplikacji);
sf::Event zdarzenie;
while( oknoAplikacji.pollEvent( zdarzenie ) )
{
if( zdarzenie.type == sf::Event::Closed )
oknoAplikacji.close();
if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Escape )
oknoAplikacji.close();
if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Middle )
oknoAplikacji.close();
if(obrazek.getGlobalBounds().contains(pozycjaMyszyWzgledemOkna))
oknoAplikacji.close();
}
oknoAplikacji.clear( sf::Color( 181, 230, 29 ) );
oknoAplikacji.draw( obrazek );
obrazek2.setPosition( 200, 0 );
oknoAplikacji.draw( obrazek2 );
obrazek3.setPosition( 400, 0 );
oknoAplikacji.draw( obrazek3 );
oknoAplikacji.display();
}
return 0;
}
chciałem zrobić zdarzenie kliknięcia w sprite'a (obrazek).
moze mi ktoś wytłumaczyć czemu to nie działa??
Z góry dzięki za pomoc i KONSTRUKTYWNĄ krytykę :)