SFML Poruszanie obiektów/aktywacja obiektów
Ostatnio zmodyfikowano 2015-03-15 21:25
Brunon3 |
» 2015-03-14 22:43:25 Tworzysz tablicę (niekoniecznie dynamiczną) typu bool , o rozmiarze takim, jak ilość kwadratów. Gdy klikniesz na kwadrat nr 1, zmieniasz na true tablica[ 1 ] , a gdy klikniesz ponownie, zmieniasz tą komórkę tablicy na false , i tak ze wszystkimi. ;) Proste. -BD. |
|
michal11 |
» 2015-03-14 22:43:40 @Lora
Twoje rozwiązanie z timerem nie jest chyba najlepsze. Do obsługi pojedynczych kliknięć powinno się stosować sf::Event. |
|
Lora |
» 2015-03-14 22:53:53 Rzeczywiście w pętli zdarzeń lepiej to wychodzi. Tylko musisz używać warunków zdarzenie.type == sf::Event::MouseButtonReleased && zdarzenie.mouseButton.button == sf::Mouse::Left zamiast sf::Mouse::isButtonPressed. |
|
miro741 Temat założony przez niniejszego użytkownika |
» 2015-03-14 23:04:14 czyli chwila bo się pogłubiłem jak ma wyglądać Event do klikania aby działał w moim programie ?? |
|
Brunon3 |
» 2015-03-14 23:06:53 Tak jak napisała to @Lora. Tamten kod umieść w pętli zdarzeń (w if'ie).
-BD. |
|
miro741 Temat założony przez niniejszego użytkownika |
» 2015-03-14 23:14:08 bool kw[ 5 ]; if( kw[ 0 ] == false ) { if( zdarzenie.type == sf::Event::MouseButtonReleased && zdarzenie.mouseButton.button == sf::Mouse::Left ) kw[ 0 ] = true, }
if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) ) { q.move( 0, - 1 ); x.move( 0, - 1 ); w.move( 0, - 1 ); e.move( 0, - 1 ); r.move( 0, - 1 ); }... W ten deseń to ma wygladać z tą tablicą przechowujacą i klikaniem ? |
|
Brunon3 |
» 2015-03-14 23:16:26 Tak, tylko lepiej będzie z: if( zdarzenie.type == sf::Event::MouseButtonReleased && zdarzenie.mouseButton.button == sf::Mouse::Left ) kw[ 0 ] = !kw[ 0 ]; Choć oczywiście ten kod który podałeś nie jest do końca dokończony. EDIT: I do warunku przesuwania kwadratu dodaj -BD. |
|
Lora |
» 2015-03-14 23:17:18 I wciąż musisz sprawdzać czy kliknąłeś w obszar zajmowany przez dany kwadrat. |
|
1 « 2 » 3 4 5 6 |