Hey,
jak wiadomo sfml2 podaje pozycję względem pulpitu. Takie zachowanie jest jednak wielce niepożądane. Jak zrobić, aby sfml2 podawał pozycję kursora względem okna gry? Nie mogę użyć statycznej metody getPosition z sf::Mouse, ponieważ mam sf::RenderWindow, a nie sf::Window, które trzeba podać jako argument. Jak to zrobić w sfml2? Jest do tego jakaś funkcja?
Czy sf::Window, czy sf::RenderWindow - nie ma znaczenia bo to drugie dziedziczy z pierwszego więc spokojnie możesz podać obiekt RenderWindow jako argument w metodzie sf::getPosition(...). Jeżeli nie działa to daj kod, pisałem kiedyś w SFML'u to spróbuję pomóc.
Niestety nie można podać sf::RenderWindow jako parametr tej metody ;(
Ale jaki jest błąd? Pamiętaj że musisz podać referencję obiektu jeżeli nie jest to wskaźnik.
Podaję wskaźnik, ale wywala, że nie ma zdefiniowanej metody przyjmującej sf::RenderWindow jest tylko dla sf::Window. Po prostu pokazuje niezgodność typów
Pokaż kod gdzie tworzysz obiekt RenderWindow i pobierasz tę pozycję bo mam wrażenie że motasz ze wskaźnikami. A, i daj dokładną treść błedu, nie streszczoną :)
sf::RenderWindow* Window = new sf::RenderWindow(sf::VideoMode(800,600,32), "", sf::Style::Default);
............
int x = sf::Mouse::getPosition(Window).x;
int y = sf::Mouse::getPosition(Window).y;
Bo przekazujesz wskaźnik. A metoda getPosition przyjmuje referencje.
Czyli tak?
int x = sf::Mouse::getPosition(*Window).x;
int y = sf::Mouse::getPosition(*Window).y;