SFML Poruszanie obiektów/aktywacja obiektów
Ostatnio zmodyfikowano 2015-03-15 21:25
Brunon3 |
» 2015-03-15 09:55:41 Po co Ci to sprawdzanie if( kw[ 0 ] == false ) (i analogicznie dla reszty)? W ten sposób nigdy żadnego nie "zablokujesz"... Ludzie, więcej logiki... |
|
miro741 Temat założony przez niniejszego użytkownika |
» 2015-03-15 11:08:45 to ja już nie wiem jak to zrobić, zrobiłem to co teraz powiedziałeś i nadal ruszają się wszystkie a na mysz nie reagują |
|
SeaMonster131 |
» 2015-03-15 11:14:01 Strasznie kombinujecie.. kwadraty[ 5 ]; int aktywny = - 1;
for( int i = 0; i < 5; i++ ) { rysujKwadrat( i ); if( klikniecieKwadratu( i ) ) aktywny = i; }
if( aktywny != - 1 ) przesunKwadrat( aktywny );
|
|
miro741 Temat założony przez niniejszego użytkownika |
» 2015-03-15 11:20:12 byłbyś tak uprzejmy i wrzucił to w ten mój kod ? |
|
Brunon3 |
» 2015-03-15 11:51:58 W taki sposób nigdy się nie nauczysz programować...
Choć nie sądzę żeby @SeaMonster dał Ci aż takiego gotowca. ;)
-BD. |
|
Lora |
» 2015-03-15 14:40:23 Chodzi o to, że prościej będzie to robić jeśli te kwadraty będą tablicą, a nie pięcioma oddzielnymi obiektami. Jeśli tak zrobisz i chcesz, żeby tylko jeden kwadrat był aktywny naraz to wystarczy w zmiennej aktywny przechowywać numer ostatnio klikniętego kwadratu. Wtedy będziesz mógł się do niego odwoływać w ten sposób: if( aktywny != - 1 ) { if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) ) { kwadrat[ aktywny ].move( 0, - 1 ); } }
Tak może wyglądać funkcja przesunKwadrat( int aktywny ) Resztę funkcji robisz podobnie do tego co było wcześniej, tylko używaj pętli, żeby odwołać się do wszystkich kwadratów w tablicy. A sprawdzanie kliknięcia kwadratu powinno się znajdować wciąż w pętli zdarzeń, a reszta funkcji poza nią. |
|
miro741 Temat założony przez niniejszego użytkownika |
» 2015-03-15 18:56:45 Podaję się dzięki za pomoc. Przerobiłem na ten sposób co podałeś a i tak nie działa mi ruszanie 1 tylko ruszają się wszystkie. |
|
Lora |
» 2015-03-15 19:04:22 Może wklej cały kod. |
|
1 2 3 « 4 » 5 6 |