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

[Allegro] Problem z rand() / zastepowanie sie tekstu

Ostatnio zmodyfikowano 2011-11-16 14:12
Autor Wiadomość
Alcarin
Temat założony przez niniejszego użytkownika
[Allegro] Problem z rand() / zastepowanie sie tekstu
» 2011-11-15 23:53:57
Witam, mam 2 kolejne problemy.

1. W jaki sposób mogę ten kod przerobić tak, żeby po kliknięciu 1x LPM kostka kręciła się 5 sekund, a następnie blokowała się, wartość z randa byla przekazywana do zmiennej i nie można było kostki już więcej przycisnąć? [próbowałem z _sleep / wait() / dif time etc]


C/C++
if( mx > 590 && mx < 740 && my > 385 && my < 515 && mb == 1 )
{
    oczko = rand() % 6 + 1;
}


textprintf_ex( bufor, font, 559, 364, makecol( 255, 255, 255 ), - 1, "Wypadlo: %d", oczko );
if( oczko == 1 ) { blit( kostka1, bufor, 0, 0, 665 - 75, 450 - 65, 800, 600 ); } //rysowanie kostki}
if( oczko == 2 ) { blit( kostka2, bufor, 0, 0, 665 - 75, 450 - 65, 800, 600 ); } //rysowanie kostki}
if( oczko == 3 ) { blit( kostka3, bufor, 0, 0, 665 - 75, 450 - 65, 800, 600 ); } //rysowanie kostki}
if( oczko == 4 ) { blit( kostka4, bufor, 0, 0, 665 - 75, 450 - 65, 800, 600 ); } //rysowanie kostki}
if( oczko == 5 ) { blit( kostka5, bufor, 0, 0, 665 - 75, 450 - 65, 800, 600 ); } //rysowanie kostki}
if( oczko == 6 ) { blit( kostka6, bufor, 0, 0, 665 - 75, 450 - 65, 800, 600 ); } //rysowanie kostki}

[póki co działa tak:
-po wcisnieciu LPM kostka kreci sie, jest wtedy losowana liczba, jednak jest tak dlugo losowana jak dlugo jest wcisniety LPM]

2.Jeśli chcę wyświetlać tekst "na sobie", czyli tak, aby w miejsce poprzedniego wchodził następny
C/C++
textprintf_ex( bufor, font, 53, 481, makecol( 255, 255, 255 ), - 1, "%s", a );
textprintf_ex( bufor, font, 53, 481, makecol( 255, 255, 255 ), - 1, "%s", b );
+ zeby tekst zamieniał się po kilku sekundach / ew po wcisnięciu LPM / jakiegos klawisza.
[domyślam się, że tutaj trzeba uzyć bitmapy którą rysujemy na buforze + na tej bitmapie wypisujemy text i go kasujemy, jednak wciąż nie wiem jak "odczekać" dany czas]
Z góry thx za podpowiedzi.
P-44141
Gabes
» 2011-11-16 03:08:58
Było to w kursie allegro4
C/C++
//to przed int main ()
volatile long licznik_1 = 0;
void zegar_1()
{
    licznik_1++;
}
END_OF_FUNCTION( zegar_1 );
LOCK_VARIABLE( licz_1 );
LOCK_FUNCTION( zegar_1 );

//to przed petlą główną
install_timer();
install_int_ex( zegar_1, BPS_TO_TIMER( 200 ) );

// to w pętli głównej
//timer 1 poczatek
while( licz_1 > 0 )
{
    //tu wstaw co chcesz
    licz_1--;
} //timer 1 koniec

//to poza pętlą usuwanie timera
remove_int( zegar_1 );

Timerów możesz dać kilka.
A tu programik http://www.wrzuc.to/kPptV088q.wt
P-44142
Alcarin
Temat założony przez niniejszego użytkownika
» 2011-11-16 14:12:06
Tak, dokładnie o to mi chodziło. Dziękuję za podpowiedź ; )
P-44149
« 1 »
  Strona 1 z 1