Genbrug en lysbesked med en funktion i MakeCode

Byg en fælles lysbesked i MakeCode. Kald funktionen fra A og B, giv knapperne forskellige pauser med en parameter, og test den gemte projektfil.

Trin på skrift

Knapper og billeder fra MC01 samt pauser fra MC03. Importer den medfølgende MC10-Lysbesked-start.hex, før du begynder. Øvelsen kan laves i simulatoren uden konto eller et fysisk micro:bit-printkort.

  1. Åbn og prøv startfilen

    Vælg Importer og Importer fil på MakeCodes startskærm. Åbn MC10-Lysbesked-start.hex, og kald projektet Lysbesked samlet. Prøv A og B hver for sig. Begge viser et hjerte og et flueben, men koden ligger to steder.

  2. Opret den fælles funktion

    Stop simulatoren. Åbn Avanceret og Funktioner, og vælg Opret en funktion. Skriv lysbesked som navn, og vælg Færdig. Træk hjertet fra A ind i funktionen; pausen og fluebenet følger med. Fjern den gamle kopi fra B ved at trække dens tre blokke til værktøjskassen.

  3. Kald funktionen fra begge knapper

    Åbn Funktioner, og træk kald lysbesked ind i A. Hent et nyt kald til B. Start simulatoren, og afprøv begge knapper. Vent på den færdige besked mellem prøverne.

  4. Ret begge beskeder ét sted

    Skift funktionens flueben til et lille hjerte. Prøv A og B: begge bruger det nye billede. Sæt derefter fluebenet tilbage.

  5. Tilføj en parameter

    Højreklik på funktionen, og vælg Rediger Funktion. Vælg Tal, kald parameteren pauseMs, og vælg Færdig. Træk pauseMs fra funktionens overskrift ind i pauseblokkens talfelt.

  6. Giv hvert kald sin egen værdi

    Skriv 500 i kaldet ved A og 1000 i kaldet ved B. Prøv A og derefter B. B har et halvt sekund mere ekstra pause. Billedblokkene bruger også tid på selve visningen.

  7. Gem og prøv den genåbnede fil

    Brug gemmeknappen ved projektnavnet, og vælg Færdig i overførselsdialogen. Gå til Startskærm og Importer fil. Vælg den faktisk gemte Lysbesked samlet-fil, kontrollér filnavnet, og vælg Gå i gang. Prøv begge knapper igen.

  8. Prøv selv

    Lad begge beskeder slutte med et lille hjerte, mens A og B beholder deres forskellige pauser. Find det ene sted, du skal rette. Kør begge knapper, og forklar, hvilken værdi hvert kald sender til funktionen. Åbn den separate løsning, når du vil sammenligne.

Prøv selv

Skift det sidste billede ét fælles sted, så begge beskeder slutter med et lille hjerte. Behold A's 500 og B's 1000 ms ekstra pause.

Begge knapper kalder lysbesked. De tre lysblokke ligger kun i den fælles funktion. Jeg kan forklare forskellen på en funktion og et kald. Pauseblokken bruger pauseMs. A sender 500, og B sender 1000. Jeg ved, at billedvisningen tager tid ud over den valgte pause. Den genåbnede fil virker med begge knapper. Jeg kan ændre begge beskeders sidste billede ved at rette ét sted.

Læs opgaven

Læs løsningen

Opgaveark (Word)

Forklaret løsning (Word)

Startfil (.hex)

Den filmede løsning (.hex)

Løsning på øvelsen (.hex)

Læs videoteksten

Du skal samle en lysbesked i en funktion, så begge knapper bruger den samme kode. Bagefter giver du knapperne hver sin pause. Åbn startfilen til denne øvelse. Du skal kende knapper, billeder og pauser. Startfilen har et hjerte, en pause og et flueben ved både A og B. Giv projektet navnet Lysbesked samlet. Tryk på A, og følg hele beskeden. Tryk nu på B. Den viser den samme besked, men koden ligger to steder. Stop simulatoren, mens du flytter blokkene. Åbn Avanceret i værktøjskassen. Vælg Funktioner. Vælg Opret en funktion. Klik på navnet, og skriv lysbesked. Vælg Færdig. Funktionen er en navngiven samling af handlinger, som du kan bruge flere steder. Træk hjertet fra A ind i funktionen. Pausen og fluebenet følger med. Fjern den gamle kopi fra B. Træk dens hjerte og de to blokke nedenunder til værktøjskassen. Åbn Funktioner igen. Træk kald lysbesked ind i A. Et kald betyder, at handlingerne i funktionen skal køres. Hent endnu et kald lysbesked, og sæt det ind i B. Start simulatoren igen. Prøv A. Hjertet og fluebenet skal komme i samme rækkefølge som før. Prøv B, når beskeden er færdig. Nu kører begge knapper den samme funktion. Skift fluebenet i funktionen til et lille hjerte. Prøv A. Beskeden slutter nu med det lille hjerte. Prøv B. Den bruger også det nye billede, selv om du kun rettede ét sted. Sæt fluebenet tilbage i funktionen. Nu skal A have en kort pause og B en længere pause. Højreklik på funktionen, og vælg Rediger funktion. Vælg Tal for at tilføje en parameter. Kald parameteren pauseMs. Den skal indeholde pausens længde i millisekunder. Vælg Færdig. En parameter er en værdi, som funktionen får, når den bliver kaldt. Træk pauseMs fra funktionens overskrift ind i pauseblokkens talfelt. Skriv femhundrede i kaldet ved A. Skriv tusind i kaldet ved B. Tryk på A, og læg mærke til tiden mellem billederne. Tryk derefter på B. B har et halvt sekund mere pause. Billedblokkene bruger også tid på selve visningen. Vælg gemmeknappen ved projektnavnet. Behold projektfilen, og vælg Færdig i dialogen om overførsel. Gå til Startskærm, og vælg Importer. Vælg Importer fil. Vælg den projektfil, du lige gemte. Kontrollér filnavnet, og vælg Gå i gang. Prøv A i den genåbnede kopi. Prøv B. Den længere pause skal også være bevaret. Prøv selv: Lad begge beskeder slutte med et lille hjerte, og behold de forskellige pauser. Find det ene sted, du skal ændre. Kør begge knapper, og forklar, hvad kaldet sender ind i funktionen. Nu kan du genbruge den samme kode med forskellige værdier.

Microsoft MakeCode

Videoerne er lavet af SkrivSikkert, som selv sælger et læse- og skriveværktøj. Microsoft har ikke lavet, betalt for eller godkendt dem. Microsoft og MakeCode er varemærker tilhørende Microsoft-koncernen. micro:bit er et varemærke tilhørende Micro:bit Educational Foundation.