latajacaryba Temat założony przez niniejszego użytkownika |
sfml - wychwycenie jednoczesnego wciśnięcia dwóch przycisków i kolizja z obiektem » 2017-02-24 00:25:17 Witam, to znowu ja ;) Chciałem stworzyć w programie opartym na w/w bibliotece, jednak nie wiem, jak zrobić poruszanie się po ukosie (np .użytkownik wciska strzałkę w prawo i w dół i "postać" idzie po ukosie - w prawo i w dół) to co już mam (fragment): while( okno.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Left ) { xx -= 20; } if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Right ) { xx += 20; } if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Down ) { yy += 20; } if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Up ) { yy -= 20; } }
jeśli klikamy lewa strzałkę, to pozycja na osi x zmniejsza się o 20. Analogicznie reszta, jednak gdy kliknę 2 przyciski na raz, to program "wyłapuje" tylko jeden z nich, co zrobić, by dla wciśnięcia obu przycisków na raz wykonał odpowiadające obu metody? I jeszcze krótko na temat, jak zaimplementować kolizje? Oczywiście mam na myśli kolizję dwóch obrazków. |
|
pekfos |
» 2017-02-24 00:40:32 Jeden event opisuje jeden klawisz, nie ma żadnego 'naraz'. Zrób to za pomocą sf::Keyboard::isKeyPressed(). I jeszcze krótko na temat, jak zaimplementować kolizje? Oczywiście mam na myśli kolizję dwóch obrazków. | sf::Rect<>::intersects(). |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-02-24 14:18:03 Dzięki, a wiesz gdzie mogę znaleźć jakieś info po polsku na temat działania tej metody sf::Rect<>::intersection(). Nie znam jeszcze szablonów klas, więc tego się douczę. |
|
Spamerski |
» 2017-02-24 16:38:57 Polecam ci ten filmik: https://www.youtube.com/watch?v=n0U-NBmLj78 |
|
Monika90 |
» 2017-02-24 17:15:55 sf::Keyboard::isKeyPressed() sygnalizuje naciśnięcie klawisza nawet wtedy gdy jakaś inna aplikacja ma focus klawiatury.
|
|
pekfos |
» 2017-02-24 18:18:33 Jeśli inna aplikacja ma focus, to można to odfiltrować, sprawdzając wartość sf::Window::hasFocus(). |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-02-24 20:04:07 Jeszcze jedna rzecz i zamykam temat :) Skąd mogę nauczyć się sfml na poziomie wyższym niż w kursach tej strony? Chodzi mi o polskojęzyczną wersję. I skąd Wy się uczyliście sfml'a? Bo widziałem, że jest mnóstwo nieomówionych w kursie klas czy funkcji. |
|
jankowalski25 |
» 2017-02-24 20:07:46 Skąd mogę nauczyć się sfml na poziomie wyższym niż w kursach tej strony? |
Z oficjalnej dokumentacji, anglojęzycznego forum, czytania kodu źródłowego różnych projektów dostępnych publicznie, pisania własnego kodu... Chodzi mi o polskojęzyczną wersję. |
Na mojej liście TODO mam wpisane tłumaczenie biblioteki SFML, ale nie wiem, kiedy to zadanie otrzyma wystarczająco wysoki priorytet, aby zostało zrealizowane. I skąd Wy się uczyliście sfml'a? |
Z anglojęzycznych źródeł, z czytania kodu źródłowego samej biblioteki, i tak dalej. Bo widziałem, że jest mnóstwo nieomówionych w kursie klas czy funkcji. |
Kurs jest ciągle niedokończony. |
|
« 1 » 2 |