Witam,
Naprawdę nie mam już do tego siły, przeszukałem całą dokumentację i pół internetu i nigdzie nie znalazłem odpowiedzi.
Otóż mam okienko (renderWindow), w którym wyświetlony jest kwadratowy sprajt. Jak sprawdzić, czy myszka znajduje się nad tym spritem? Podkreślam, że to sfml 2.0 i nie ma już funkcji TransformToLocal.. Bardzo proszę o pomoc.
a znasz położenie/wymiary kwadratu? Jak tak to w czym problem?
o ile dobrze pamiętam google jeszcze nie zaprzestało swojej działalności - wyszukiwarka wciąż działa.
const sf::Input &inp = okno.GetInput(); // gdzie okno to zmienna typu RanderWindow.
i istnieją 2 magiczne funkcje:
inp.GetMouseX();
inp.GetMouseY();
teraz kalibrujesz to odpowiednio ze swoimi współrzędnymi kwadratu i gotowe.
http://cpp0x.pl/kursy/Kurs-SFML-C++/Bezposredni-dostep-do-klawiatury-myszy-i-joysticka/330
Nie jestem aż takim noobem, jak sugeruje to pytanie.
To SFML 2.0 - nie ma klasy Input. Ale nie o to chodzi, mam współrzędne myszy i współrzędne kwadratu. @qupa, podany przez Ciebie kurs jest dla wersji 1.6, gdzie wykorzystana jest wspomniana przeze mnie funkcja transformToLocal, która znacząco uławtiłaby sprawę.
Problem w tym, żeby te współrzędne były podane względem tego samego punktu.
- mouse.getPosition() podaje względem rogu ekranu;
- mouse.getPosition(oknoAplikacji) podaje zawsze 0;
- kwadrat.getGlobalBounds() podaje względem okna;
- kwadrat.getLocalBounds() podaje względem kwadratu;
Moim celem jest wyrażenie współrzędnych położenia myszy w układzie związanym z kwadratem, tzn. żeby (0,0) było w lewym górnym rogu kwadratu.
Macie pomysł, jak to zrobić?
Skoro nie jesteś"takim noobem..." to czemu nie zrobisz tego jak normalny człowiek, czyli nie sprawdzisz w dokumentacji?
getPosition() + znane wymiary sprajta (albo getSize() tekstury z ktorej zrobiles sprajta)