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

SFML SF::View problem.

0 głosów
556 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 151 wizyt
0 głosów
0 odpowiedzi 222 wizyt
pytanie zadane 3 stycznia 2018 w C i C++ przez szym3ns Użytkownik (860 p.)
0 głosów
1 odpowiedź 340 wizyt

93,631 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...