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

[SFML 2.1] Funkcja licząca odstępy czasu

Ostatnio zmodyfikowano 2014-12-02 20:14
Autor Wiadomość
lectre
Temat założony przez niniejszego użytkownika
[SFML 2.1] Funkcja licząca odstępy czasu
» 2014-12-02 19:59:01
Witam. Stworzyłem funkcję, która sprawdza, czy minął dany czas, jeśli tak, to zwraca wartość true. Niestety nie można wywołać jej kilka razy w programie, na czym mi zależy. Działa wtedy jedynie jedno wywołanie, te w które podeślemy jako argument najkrótszy czas. Wiem, dlaczego. Natomiast nie mam dobrego pomysłu, jak ją zmodyfikować. Oto kod:

C/C++
bool czas_minal( float czas )
{
    static sf::Clock zegar;
    static sf::Time cz;
    cz = zegar.getElapsedTime();
    if( cz.asMilliseconds() >= czas )
    {
        zegar.restart();
        return 1;
    }
    return 0;
}
P-121983
amilkwes
» 2014-12-02 20:02:58
Zrezygnuj ze zmiennych statycznych. Masz dwie sensowne możliwości przerobienia tego.

Zostając przy funkcji:
C/C++
bool czas_minal( float czas, sf::Clock & zegar )
{
    sf::Time cz = zegar.getElapsedTime();
    if( cz.asMilliseconds() >= czas )
    {
        zegar.restart();
        return 1;
    }
    return 0;
}

Albo wykonać z tego klasę:
C/C++
class MyTimer {
    sf::Clock zegar;
public:
    bool czyMinalCzas( float czas );
};

P-121985
lectre
Temat założony przez niniejszego użytkownika
» 2014-12-02 20:14:32
Dziękuję bardzo.
P-121989
« 1 »
  Strona 1 z 1