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

question-closed Płynny ruch w SFML

Object Storage Arubacloud
+2 głosów
820 wizyt
pytanie zadane 28 maja 2015 w C i C++ przez niezalogowany
zamknięte 4 czerwca 2015
Chodzi o to, że jak się przytrzyma klawisz, to ruch jest taki: pup, pupupupupup. Kto robił wie o co chodzi ;) Próbowałem już paru sposobów: używałem zwykłej funkcji move(), zmieniałem pozycję o +1, zmieniałem setKeyRepeatEnabled(), ale nie wiem co zrobić. W dokumentacji pisze, że trzeba zrobić boolean i przy wciśnięciu klawisza ustawić na np. true, a przy odciśnięciu na false. Nie ma funkcji z odciśnięciem, więc poprostu dałem else. Nic nie działa, szukałem dużo na necie. Proszę o sprawdzone metody i ich wytłumaczenie, a nie gotowce z neta, w których nie wiecie o co chodzi, założę się, że i tak je oglądałem ;) Dzięki za odpowiedzi.
komentarz zamknięcia: Przez przypadek znalazłem rozwiązanie, wszystko teraz fajnie działa :D

2 odpowiedzi

0 głosów
odpowiedź 28 maja 2015 przez Kuba Stary wyjadacz (12,460 p.)
wybrane 29 maja 2015
 
Najlepsza
Stwórz flagę (bool) czy klawisz jest wciśnięty czy nie. W eventach przy kliknieciu danego przycisku zmien flage na true, a przy odkliknięciu na false. Stwórz funkcję, która za każdym obiegiem pętli głównej programu będzie się wykonywać lub nie w zależności czy klawisz jest kliknięty.
komentarz 29 maja 2015 przez niezalogowany
No, później zedytowałem komentarz i już sprawdzałem który klawisz, ale czemu poza pętlą zdarzeń, przecież jak pętla się nie skończy, to wtedy będzie się robiło to co w pętli, a nic poza nią. Chodzi ci o pętlę pollEvent(), tak? Nie o isOpen()?
komentarz 29 maja 2015 przez niezalogowany
Wiesz co, kij z tym, zajmę się tym jednak kiedy indziej, daję ci łapkę w górę, naj i koniec tematu :D Jakby co, to cośtam do ciebie jeszcze napiszę, czy to w komentarzach czy prywatnie ;)
komentarz 29 maja 2015 przez daan Pasjonat (17,640 p.)
tak poza pollEvent, ta pętla "uruchamia" się tylko jeżeli okno dostanie jakieś zdarzenie a funkcja isKeyPressed działa w w czasie rzeczywistym :)
komentarz 29 maja 2015 przez niezalogowany
No tak, tak, wiem, tylko się pytałem, czy ten ruch ma być poza pollEvent właśnie, czy poza pętlą główną, sprawdzającą, czy okno jest otwarte ;)
komentarz 4 czerwca 2015 przez niezalogowany
Słuchaj, dzięki stary, wszystko płynnie działa, ale to przez przypadek :P No więc tak: zrobiłem klasę Statek (robię takiego Space shooter'a :3) i public void ruch(). Żeby to się ciągle robiło, to dałem to w głównej pętli while, ale nie w pętli z eventami. No i rzeczywiście! Już wiem o co chodzi, poprostu jak się wciśnie klawisz to jest pup, pupupupupup, a w pętli głównej to się sprawdza normalnie, no i teraz fajnie działa. Dzięki za pomoc, temat do zamknięcia ;)
0 głosów
odpowiedź 28 maja 2015 przez Ehlert Ekspert (212,670 p.)
Utwórz zmienna czasowa np sf::second. Potem mnożenie/dzielenie pixeli, czyli argumentów metody move()
komentarz 29 maja 2015 przez niezalogowany
Dzięki za klarowną odpowiedź :D Mógłbyś trochę to wytłumaczyć, bo jak na razie niezbyt wiem o co chodzi...

Podobne pytania

+1 głos
1 odpowiedź 1,424 wizyt
pytanie zadane 12 września 2015 w C i C++ przez C☺ndzi Stary wyjadacz (12,100 p.)
0 głosów
0 odpowiedzi 115 wizyt
pytanie zadane 15 maja 2021 w Sieci komputerowe, internet przez Madlow Nowicjusz (120 p.)
0 głosów
1 odpowiedź 426 wizyt

92,572 zapytań

141,422 odpowiedzi

319,645 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...