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

SFML Rotacja sprite wzgledem kursora

0 głosów
158 wizyt
pytanie zadane 6 grudnia 2016 w C i C++ przez 10kw10 Pasjonat (23,020 p.)

Pisze gre typu shooter i chcialbym zrobic tak, zeby postac gracza obracala sie wzgledem pozycji kursora.

Na pewniej stronie zobaczylem taki wzor:

atan2( myszka_y - srodek_okna_y, myszka_x - srodek_okna_x );

Wiec napisalem takie cos:

gracz.setRotation(atan2(static_cast < double > (sf::Mouse::getPosition().y - 300),static_cast < double > (sf::Mouse::getPosition().x - 400) )*180.f/M_PI);

Wzor dziala ale nie dokladnie, gdy kursor jest blisko postaci gracza to ledwo co sie obraca, gdy zas daleko - zbyt szybko ;/

Za Srodek okna y wzialem 300 bo stworzylem okno (800,600) .Nie wiem czy dobrze to rozumiem i czy o to chodzilo.

komentarz 6 grudnia 2016 przez niezalogowany
Jeżeli któraś z odpowiedzi pomogła Ci rozwiązać problem to wybierz ją jako najlepszą
komentarz 6 grudnia 2016 przez 10kw10 Pasjonat (23,020 p.)
a jezeli dwie mi pomogly ? :D
komentarz 6 grudnia 2016 przez niezalogowany
To wybierz bardziej pomocną, na pewno nie zostaw tego bez wybrania jednej ;)

2 odpowiedzi

0 głosów
odpowiedź 6 grudnia 2016 przez Criss Mędrzec (172,320 p.)
wybrane 6 grudnia 2016 przez 10kw10
 
Najlepsza
Względem kursora czy w strone kursora? Bo to są dwie zupełnie różne rzeczy, a twój kod wskazuje na opcje "w strone kursora".

A co do twojego błędu: do sf::Mouse::getPosition powinieneś przekazać obiekt okna, żeby funkcja zwróciła pozycje względem okna (a nie ekranu w ogóle). Wtedy powinno działać jak trza.

edit: I zamiast współrzędnych środka okna powinny być współrzędne obiektu który chcesz obracać. To co masz teraz działać będzie tylko jeśli obiekt znajduje się na środku okna..
komentarz 6 grudnia 2016 przez 10kw10 Pasjonat (23,020 p.)
Poprawilem i dziala !

Wspolrzedne srodka zostawilem bo we view center jest ustawiony gracz wiec zawsze bedzie w centrum okna. Jak dalem jego wspolrzedne to przestalo dzialac.

Dzieki wielkie !
0 głosów
odpowiedź 6 grudnia 2016 przez playerony Pasjonat (15,260 p.)
komentarz 6 grudnia 2016 przez 10kw10 Pasjonat (23,020 p.)
Dzieki, dziala !

Podobne pytania

0 głosów
0 odpowiedzi 101 wizyt
pytanie zadane 29 kwietnia 2017 w C i C++ przez Pajdas Mądrala (5,990 p.)
0 głosów
3 odpowiedzi 235 wizyt
pytanie zadane 19 lutego 2017 w C i C++ przez Munvik Dyskutant (8,290 p.)
0 głosów
1 odpowiedź 111 wizyt
pytanie zadane 5 czerwca 2016 w C i C++ przez Maciek123233 Gaduła (3,210 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

64,913 zapytań

111,382 odpowiedzi

234,401 komentarzy

46,749 pasjonatów

Przeglądających: 110
Pasjonatów: 1 Gości: 109

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...