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

SFML Poruszanie obiektów/aktywacja obiektów

Ostatnio zmodyfikowano 2015-03-15 21:25
Autor Wiadomość
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...
P-128446
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ą
P-128448
SeaMonster131
» 2015-03-15 11:14:01
Strasznie kombinujecie..
C/C++
kwadraty[ 5 ];
int aktywny = - 1;

for( int i = 0; i < 5; i++ )
{
    rysujKwadrat( i );
    if( klikniecieKwadratu( i ) )
         aktywny = i;
   
}

if( aktywny != - 1 )
     przesunKwadrat( aktywny );

P-128449
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 ?
P-128450
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.
P-128451
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:
C/C++
if( aktywny != - 1 )
{
    if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) )
    {
        kwadrat[ aktywny ].move( 0, - 1 );
    }
    //Dalej dla innych kierunków
}
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ą.
P-128464
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.
P-128483
Lora
» 2015-03-15 19:04:22
Może wklej cały kod.
P-128484
1 2 3 « 4 » 5 6
Poprzednia strona Strona 4 z 6 Następna strona