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

[SFML] Mulenie ekranu przy wyświetlaniu grafiki

Ostatnio zmodyfikowano 2013-08-08 08:59
Autor Wiadomość
DejaVu
» 2013-08-08 08:59:23
Przy okazji powinieneś poprawić sposób liczenia życia:
C/C++
void obliczStatystyki()
{
    if( currentHealth > 0 )
         currentHealth += regHealth;
    else
         currentHealth = 0;
   
    if( currentHealth > maxHealth )
         currentHealth = maxHealth;
   
    procentHealth =( int ) currentHealth * maxHealth / 100;
    hpSzerokosc = 200 *( int ) procentHealth / 100;
   
   
}
W Twoim kodzie możliwa jest regeneracja życia po śmierci oraz przekroczenie wartości maxHealth.

/edit:
Poza tym źle nazywasz funkcje. Np. ta funkcja od życia powinna nawiązywać do życia, a nie do statystyk. Poza tym ta funkcja powinna zostać rozbita na kilka części:
C/C++
void aktualizujProcentZycia()
{
    currentHealth = currentHealth > 0 ?( currentHealth + regHealth )
        : 0;
   
    if( currentHealth > maxHealth )
         currentHealth = maxHealth;
   
    procentHealth =( int ) currentHealth * maxHealth / 100;
}

void odswiezStatystykiGUI()
{
    //Aktualizacja Many
    //...
    //Aktualizacja HP
    hpSzerokosc = 200 *( int ) procentHealth / 100;
}

void aktualizujStanGry()
{
    aktualizujProcentZycia();
    //aktualizujProcentMany();
    //...
    odswiezStatystykiGUI();
}

/edit:
Wzory również masz złe...
C/C++
procentHealth = static_cast < int >(( currentHealth * 100 ) / maxHealth );
P-89718
1 « 2 »
Poprzednia strona Strona 2 z 2