Alarm
Een alarm dat afgaat wanneer we zelf willen? Natuurlijk heeft onze klok dat nodig! We kunnen het alarm bouwen als een nieuwe sprite alarm met het uiterlijk van een knop. Eigenlijk zijn het drie uiterlijken:
- Zet alarm om de alarmtijd in te stellen
- Alarm gezet om aan te duiden dat het alarm is ingesteld
- ALARM die getoond wordt als het alarm afgaat en om het alarm uit te schakelen We hebben ook variabelen nodig om een aantal dingen te onthouden.
Maak deze variabelen:
- IsAlarmGezet om te onthouden of het alarm aan staat of niet
- uur om te onthouden op welk uur het alarm moet afgaan
- min om de minuten te onthouden wanneer het alarm moet afgaan
De variabelen uur en min kan je zichtbaar zetten zodat je kan zien op welke tijd het alarm is ingesteld. Zet die op groot uitlezen zodat het goed duidelijk is. In de achtergrond kan je er eventueel een kader rond zetten.
Bijvoorbeeld zo :

Nu moeten we code gaan schrijven om het alarm in te stellen. Bij de start van het programma moet het alarm af staan. In de variabele IsAlarmGezet zetten we het getal 1 of 0 om te onthouden of het alarm aan staat of niet. We gaan de variabelen met het uur en de minuten ook verbergen om extra duidelijk te maken dat het alarm af staat. Dat kan met deze blokken:
verander uiterlijk naar [Zet alarm v]
wanneer groene vlag wordt aangeklikt
verberg variabele [uur v]
verberg variabele [min v]
maak [IsAlarmGezet v] [0]
Je kan het alarm aan en af zetten door op de sprite alarm te klikken.
Als het alarm niet gezet is, dan zetten we het aan en tonen we de tijd.
Om te testen, zetten we de tijd al eens op 10u45. Als het alarm wel gezet is, dan moet het weer af en verbergen we de tijd.
Deze blokken heb je daarvoor nodig:
wanneer op deze sprite wordt geklikt
als <> dan
<(IsAlarmGezet) = [0]>
maak [IsAlarmGezet v] [0]
maak [uur v] [10]
maak [min v] [45]
toon variabele [min v]
verander uiterlijk naar [Zet alarm v]
maak [IsAlarmGezet v] [1]
verberg variabele [min v]
verberg variabele [uur v]
verander uiterlijk naar [Alarm gezet v]
toon variabele [uur v]
Dan hebben we code nodig om een alarm af te spelen. Dit moet heel de tijd kijken of het alarm gezet is, en ook of het ingesteld uur en minuten gelijk zijn aan de huidige tijd. Als dat zo is, dan moet een geluid afgespeeld worden totdat het alarm wordt afgezet. Dat kan allemaal met deze blokken:
herhaal
wacht tot <>
herhaal tot <>
<> en <>
<(IsAlarmGezet) = [1]>
<(uur) = (huidige [uur v])
start geluid [cymbal echo v] en wacht
wacht (1) sec.
wanneer groene vlag wordt aangeklikt
<(min) = (huidige [minuut v])>
verander uiterlijk naar [ALARM v]
<(IsAlarmGezet) = [0]>
<> en <>
Niet vergeten testen!
Als je nu de huidige tijd invult voor uur en min, werkt je alarm dan al? Als dit lukt dan kunnen we verder naar het laatste deel...
Oplossing
klik hier
wanneer groene vlag wordt aangeklikt
ga naar x (-190) y (130)
verander uiterlijk naar [Zet alarm v]
verberg variabele [uur v]
verberg variabele [min v]
maak [IsAlarmGezet v] [0]
herhaal
wacht tot <<(IsAlarmGezet) = (1)> en <<(uur) = (huidige [uur v])> en <(min) = (huidige [minuut v])>>>
verander uiterlijk naar [ALARM v]
herhaal tot <(IsAlarmGezet) = (0)>
start geluid [cymbal echo v] en wacht
wacht (1) sec.
einde
einde
wanneer op deze sprite wordt geklikt
als <(IsAlarmGezet) = [0]> dan
maak [uur v] [10]
maak [min v] [45]
verander uiterlijk naar [Alarm gezet v]
toon variabele [uur v]
toon variabele [min v]
einde