Today you are coding in MakeCode Arcade. You will build Donut Rush step by step at your device: a collection game with score and a countdown.
You can already work with sprites and simple events. Today you will put that together into a full timed game, then try a friend's version and compare design choices.
Before anyone runs anything: what do you think will happen when the player overlaps a donut, and what should happen when the countdown runs out?
Donut Rush has four parts:
The function is the part worth watching: it is why starting level two costs one line rather than a copy of everything.
Start by creating a new project in MakeCode Arcade. To do this, go to the MakeCode Arcade website and click on 'New Project'.
Create a new Arcade project using the makecode.com website.
This studio shows code two ways. Most steps give the code as text, and a couple show it as a picture of the blocks. They are the same program. At the top of the MakeCode Arcade editor there is a toggle that says Blocks | JavaScript, and you can move between the two whenever you like. To type the text below, switch to JavaScript.
It is the same program either way. Flip back to Blocks whenever you like and you will see the code you typed as blocks, which is a good way to check you have it right. If a line will not go in, check the brackets and the capital letters, text is fussier than blocks.
Let's set up the game. We'll create a splash screen, set up some variables, and create our player sprite. The splash screen is the first screen that appears when the game starts. It's a great place to display the game's title or any instructions for the player.
The variables we're creating will be used to keep track of the game's state:
Add the following code:
let mySprite: Sprite = null
let collected = 0
let target = 0
let level = 0
game.splash("Collect the donuts!")
level = 1
target = 0
collected = 0
mySprite = sprites.create(img`
. . . . . . 5 . 5 . . . . . . .
. . . . . f 5 5 5 f f . . . . .
. . . . f 1 5 2 5 1 6 f . . . .
. . . f 1 6 6 6 6 6 1 6 f . . .
. . . f 6 6 f f f f 6 1 f . . .
. . . f 6 f f d d f f 6 f . . .
. . f 6 f d f d d f d f 6 f . .
. . f 6 f d 3 d d 3 d f 6 f . .
. . f 6 6 f d d d d f 6 6 f . .
. f 6 6 f 3 f f f f 3 f 6 6 f .
. . f f d 3 5 3 3 5 3 d f f . .
. . f d d f 3 5 5 3 f d d f . .
. . . f f 3 3 3 3 3 3 f f . . .
. . . f 3 3 5 3 3 5 3 3 f . . .
. . . f f f f f f f f f f . . .
. . . . . f f . . f f . . . . .
`, SpriteKind.Player)
controller.moveSprite(mySprite, 70, 70)
In the Variables toolbox, create a new variable by clicking the 'Make a Variable' button.
Once you click this button a box will appear asking what you want to call your variable. Give it a name that reminds you what you will be using it for. For example, if you wanted to keep track of your score in a game, you would create a variable called 'score'.
A function in programming is a reusable piece of code. It allows you to group several commands together, which can then be called upon whenever you need them. This helps to make your code more organised and efficient.
Create a function called startLevel.
function startLevel () {
}
Functions are useful if you have some code/instructions that you want to use again and again.
To create a function go to the Advanced > Functions toolbox and click 'Make a Function'.
Give your function a name that makes sense and choose whether to pass anything into the function. In this example we will pass in a sprite and some text for it to say.
You're previewing this lesson. Get full access to this lesson and hundreds more — each one ready to teach, with interactive activities, printable resources and pupil progress tracking built in.