Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

sfml - wychwycenie jednoczesnego wciśnięcia dwóch przycisków i kolizja z obiektem

Ostatnio zmodyfikowano 2017-02-26 17:02
Autor Wiadomość
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):
C/C++
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.

P-158239
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().
P-158242
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ę.
P-158256
Spamerski
» 2017-02-24 16:38:57
Polecam ci ten filmik: https://www.youtube.com/watch?v=n0U-NBmLj78
P-158258
Monika90
» 2017-02-24 17:15:55
sf::Keyboard::isKeyPressed() sygnalizuje naciśnięcie klawisza nawet wtedy gdy jakaś inna aplikacja ma focus klawiatury.
P-158260
pekfos
» 2017-02-24 18:18:33
Jeśli inna aplikacja ma focus, to można to odfiltrować, sprawdzając wartość sf::Window::hasFocus().
P-158263
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.
P-158270
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.
P-158271
« 1 » 2
  Strona 1 z 2 Następna strona