Students add sounds with audio.beep where things happen, draw their own sprites in microStudio and draw them with screen.drawSprite, then make and playtest a game of their own and decide how to share it safely.
Load these into Waypoints Prepare: choose Load URL and paste the copied address, or download the file and import it. In Prepare, the worksheet's Teacher edition shows the answers; the student copy hides them.
Predict and Run 10 min · Investigate 10 min · Modify 15 min · Make 25 min (or longer as a project)
Read the unit primer first. Turn sound on (headphones help). audio.beep("C E G") plays notes from text; words such as duration 100, tempo 160, square, saw and sine change how. Sprites are drawn in microStudio's Sprites tab and named there; screen.drawSprite("name", x, y, width, height) draws one (our site's games cannot show students' sprites, so the Modify step has no game on the page). Sharing: a project is private until it is made public; a public project can be played and copied by anyone from microStudio's Explore page, under the student's nickname. Decide your rule before the lesson (for example: publish only with your OK, nicknames only). Guest projects are deleted after about 15 days, so guests should make an account or keep a copy of their code. The Make step can run as a longer project; the Python pathway's For teachers notes suit a showcase.
Finishing: a game of their own is open-ended. Agree a small goal first (one change to the rules, own sprites, two sounds), then add.
| What you will see | A question to ask | The fix |
|---|---|---|
| The sprite does not show. | Is the name in drawSprite exactly the sprite's name in the Sprites tab? | Use the same name, in lower case, in quotes. |
| The sound plays over and over. | Is the beep in draw(), or in an if that is true for many frames? | Move it into update(), in the if where the thing happens once. |
| No sound at all. | Has the game been clicked, and is the sound on? | Browsers only allow sound after a click in the page. |
| Their guest project has gone. | Did they make an account, or keep a copy? | Guest projects are deleted after about 15 days; make accounts for longer work. |
Stretch: Add a title screen: a mode variable ("title", "play", "over") that update() and draw() check first.
Support: Start the Make step from the catching game and change only the sprites, the sounds and one rule.
Why does a catch sound go in update() and not in draw()?
It should play once, when the catch happens; draw() runs every frame, so a sound there would repeat 60 times a second.
The Python pathway's other extensions (data, web apps) use the same Python. microStudio's Help tab covers maps, music and multiplayer; Godot's GDScript is a natural next engine.