Timer met allegro in c++ / variable printen met allegro

Status
Niet open voor verdere reacties.

Jhnddy

Nieuwe gebruiker
Lid geworden
19 nov 2008
Berichten
2
Ik ben hard bezig een (2D) game aan het maken, en maak erg fanatiek gebruik van allegro, maar loop daarmee op een paar probleempjes:

ik wil in de code een timer hebben, die een variable elke seconde met 1 verhoogt.
is dit zowieso mogelijk? en zo ja, hoe?

ook wil ik de waarde van een variable op het scherm afdrukken, maar dit gaat niet met:
Code:
textout_ex( screen, font, level(dit is dus een variable), 320,  240, makecol( 255, 0, 0), makecol( 0, 0, 0));

weet iemand hoe dit wel kan met allegro?
 
Natuurlijk kan dat ^^ en op meerdere manieren. Een makkelijk en relatief veilige manier is om een thread aan te maken, die in een oneindigende loop 1 seconde te laten slapen en verhogen. Het slapen van een seconde gaat op sommige OSsen niet zo netjes, zit vaak speling in. Vandaar het relatief veilige eraan. Maar ik neem aan dat het hier om een timer in het spel oid gaat, dus dat is dan niet zo belangrijk. Ga je ingewikkelde dingen met die variabele doen zou ik niet "een variabele iedere seconde laten verhogen" maar on the fly berekenen (delta timing).

Kijk voor Windows naar de functie CreateThread() en voor linux pthread_create().
 
met dat tijd gebeuren ben ik nu klaar, werkt perfect =)

paar kleine aanpassingen door in de main() het volgende te zetten
Code:
install_timer();
	LOCK_VARIABLE(tijd);
	LOCK_FUNCTION(ticker);
	install_int_ex(ticker, BPS_TO_TIMER(1));
en ergens anders
Code:
volatile int tijd;

void ticker(){
    tijd++;
} 
END_OF_FUNCTION(ticker);

maar heeft iemand nog een oplossing om de waarde van een variable op het scherm te printen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan