• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SFML SF::View problem.

Aruba Cloud - Virtual Private Server VPS
0 głosów
459 wizyt
pytanie zadane 29 sierpnia 2016 w C i C++ przez sprytny22 Obywatel (1,130 p.)

Witam, jestem w trakcie pisania gierki i mam pewnien problem z poruszaniem mapy.

http://cpp0x.pl/forum/temat/?id=8695

chodzi mi o cos podobnego jak pod tym linkiem a dokładniej o poruszanie mapy gdy myszka dotknie krawedzi mapy. Mi chodzi o to abym gdy nacisne LPM kursor zniknął(to akurat wiem jak zrobic) i aby mapa przesuwała sie odwrotnie do kierunku myszy chodzi mi tu o takie przesuwanie jak np na Google maps. Jakieś pomysły nie wiem jak sie do tego zabrać probowałem na swoje nieudolne sposoby ale nic mi nie wychodzilo . ;/

3 odpowiedzi

0 głosów
odpowiedź 29 sierpnia 2016 przez MetRiko Nałogowiec (37,110 p.)
Potrzebujesz przede wszystkim punku odniesienia.. tj. pozycji kliknięcia (ustawiasz tylko raz, w momencie kliknięcia).. i odległości od tej pozycji (aktualizujesz, inaczej mówiąc.. pozycja kursora).. następnie prosta zabawa z matematyką obliczaniem różnic pozycji x i y.
0 głosów
odpowiedź 29 sierpnia 2016 przez afferu Mądrala (5,220 p.)
0 głosów
odpowiedź 1 września 2016 przez sprytny22 Obywatel (1,130 p.)

Mam kolejny problem to mój kod:

sf::Vector2f v1, v2;
		static int x_static = 0, y_static = 0;
		int x, y;

		if (!sf::Mouse::isButtonPressed(sf::Mouse::Left))
		{
			sf::Vector2f mouse(sf::Mouse::getPosition(win));
			v1 = mouse;
		}
		if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
		{
			sf::Vector2f mouse_2(sf::Mouse::getPosition(win));

			v2 = mouse_2;
			x = (v1.x - v2.x) - x_static;
			y = (v1.y - v2.y) - y_static;
			x_static = x_static + x;
			y_static = y_static + y;
			view_.setCenter(view_.getCenter().x + x, view_.getCenter().y + y);


		}

 

Gdy klikam przycisk to wszystko fajnie przesuwa sie mapka, ale gdy puszcze i przesunę mysz w inne miejsce i klikne to srodek przesuwa sie w inne miejsce. Nie wiem o co chodzi mecze sie od paru godzin, pewnie jakas drobnostka :( Pomoże ktos?

komentarz 1 września 2016 przez Gracjan Pasik Obywatel (1,810 p.)
19 linije zamień na: view_.move(v1,v2);

i wytłumacz dokładniej problem czego oczekujesz a co się dzieje, bo nie rozumiem co chcesz osiągnąć
komentarz 1 września 2016 przez sprytny22 Obywatel (1,130 p.)
Chce osiagnac taki efekt jak napiałem wyzej "abym mógl przesuwać mape tak jak np google maps". Moj amatorski skrypt nie robi tego jak robic powinien tzn gdy klikne na dowolne miesce na mapie to setCenter() sie przemieszcza sie tak jak by od poczatku programu liczył trase myszki od polozenia na poczatku programu, a tak byc nie powinno. Nie wiem jak lepiej to wytłumaczyc musiałbys skompilować to i sam zobaczyc jak działa. Ps wiem ze mój kod moze byc brzydki czy cos ale jestem początkujacym koderem, prosze o wyrozumiałosc.

Podobne pytania

0 głosów
0 odpowiedzi 118 wizyt
0 głosów
0 odpowiedzi 183 wizyt
pytanie zadane 3 stycznia 2018 w C i C++ przez szym3ns Użytkownik (860 p.)
0 głosów
1 odpowiedź 285 wizyt

93,335 zapytań

142,331 odpowiedzi

322,415 komentarzy

62,670 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...