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

[c] Jednoczesne działanie dwóch pętli

Ostatnio zmodyfikowano 2013-12-04 19:30
Autor Wiadomość
pekfos
» 2013-12-03 18:35:28
O takie coś ci chodzi?
"nie przytrzymany klawisz" nie znaczy "przytrzymany inny klawisz".
P-98176
R3V0
» 2013-12-03 18:39:38
C/C++
int i = 0;
while( true )
{
    system( "cls" );
    cout << i << endl;
    if( kbhit() )
    {
        if( getch() == 'w' )
        {
            i++;
        }
    }
    else
    {
        if( i > 0 )
             i--;
       
    }
   
}

to działa tak jak chcę tylko ma opóźnienie. poszukam jakiegoś wait czy coś i powinno być okey ;)

a kolega niech zapozna się z funkcjami zaprzyjaźnionymi. zrobi 2 klasy i w nich 2 funkcje wywołujące pętle. później za pomocą funkcji zaprzyjaźnionej połączy te pętle i powinno być okey ;) tylko musisz się sam pobawić z tym :( jak znajde trochę czasu to postaram się to rozszyfrowac ;)
P-98177
marcopolo
Temat założony przez niniejszego użytkownika
» 2013-12-03 19:29:55
Teraz to mi odpisujesz czy koledze :D ?
P-98183
pekfos
» 2013-12-03 19:39:01
Chcesz robić dwie rzeczy naraz - użyj wątków. Podałeś za mało informacji, by dało się zaproponować inne rozwiązanie (o ile jest inne).
P-98186
R3V0
» 2013-12-03 19:44:59
marcopolo sam bym sobie nie odpisywał ;) tak jak pekfos napisał, nie wiem dokładnie co chcesz osiągnąć ale ja powiązałem 2 pętle funkcją zaprzyjaźnioną

ja potrzebowałem tego do oddzielnego sterowania na 2 graczy. problem był taki, że gracze ruszali się jeden po sobie.
dzięki funkcji zaprzyjaźnionej mogli poruszać się niezależnie.
P-98189
RazzorFlame
» 2013-12-03 19:49:49
Podałeś za mało informacji, by dało się zaproponować inne rozwiązanie
albo jedna pętla, tyle że ma wykonywać dwie rzeczy
C/C++
bool keys[ 255 ];
//ustawiasz ich wartosc na false

while( warunek )
{
    for( int i = 0; i < 255; i++ )
    {
        if( GetAsyncKeyState( i ) )
        {
            keys[ i ] = true;
        }
        else keys[ i ] = false;
       
    }
    if( keys[ 27 ] ) //lub keys[VK_ESCAPE]
    {
        cout << "Klawisz escape jest wcisniety!" << endl;
    }
   
   
}
Virtual-Key Codes

Edit:
Dodajesz tylko jeszcze <windows.h>
P-98191
marcopolo
Temat założony przez niniejszego użytkownika
» 2013-12-03 20:01:45
dzieki
P-98195
pekfos
» 2013-12-03 20:05:42
Sprawdź w dokumentacji, czy są funkcje do sprawdzania, czy są dane do odebrania, lub czy są nieblokujące odpowiedniki tych funkcji (bo domyślam się, że te są blokujące). Jeśli nie ma, to już chyba tylko wątki.
P-98197
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona