pxt-calliope/docs/lessons/rotation-animation/challenges.md

146 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

2016-03-26 00:47:20 +01:00
# rotation animation block challenges
Coding challenges for the rotation animation.
## Before we get started
Complete the following guided activity:
2016-04-13 17:27:45 +02:00
* [activity](/lessons/rotation-animation/activity)
2016-03-26 00:47:20 +01:00
At the end of the activity, your code should look like this:
```blocks
let rotating = true;
while (rotating) {
basic.pause(20)
basic.showLeds(`
# . . . .
. # . . .
. . # . .
. . . # .
. . . . #
`)
basic.showLeds(`
. . # . .
. . # . .
. . # . .
. . # . .
. . # . .
`)
basic.showLeds(`
. . . . #
. . . # .
. . # . .
. # . . .
# . . . .
`)
basic.showLeds(`
. . . . .
. . . . .
# # # # #
. . . . .
. . . . .
`)
}
```
### Challenge 1
2016-03-28 20:28:34 +02:00
Now let's add to this by creating a condition for on button pressed `A` before the while loop. We will also introduce serial writeLine for the while loop and input OnButtonPressed
2016-03-26 00:47:20 +01:00
```blocks
let rotating = true;
while (rotating) {
2016-03-28 20:28:34 +02:00
serial.writeLine("loop")
2016-03-26 00:47:20 +01:00
basic.showLeds(`
# . . . .
. # . . .
. . # . .
. . . # .
. . . . #
`)
basic.showLeds(`
. . # . .
. . # . .
. . # . .
. . # . .
. . # . .
`)
basic.showLeds(`
. . . . #
. . . # .
. . # . .
. # . . .
# . . . .
`)
basic.showLeds(`
. . . . .
. . . . .
# # # # #
. . . . .
. . . . .
`)
}
2016-03-31 00:54:19 +02:00
input.onButtonPressed(Button.A, () => {
serial.writeLine("hello")
})
2016-03-26 00:47:20 +01:00
```
### Challenge 2
2016-05-27 00:24:10 +02:00
2016-03-26 00:47:20 +01:00
Now that we have the on button pressed condition, let's make the animation stop rotating by setting the rotating global variable to false when button `A` is pressed.
```blocks
let rotating = true;
while (rotating) {
2016-03-28 20:28:34 +02:00
serial.writeLine("loop")
2016-03-26 00:47:20 +01:00
basic.showLeds(`
# . . . .
. # . . .
. . # . .
. . . # .
. . . . #
`)
basic.showLeds(`
. . # . .
. . # . .
. . # . .
. . # . .
. . # . .
`)
basic.showLeds(`
. . . . #
. . . # .
. . # . .
. # . . .
# . . . .
`)
basic.showLeds(`
. . . . .
. . . . .
# # # # #
. . . . .
. . . . .
`)
}
2016-03-31 00:54:19 +02:00
input.onButtonPressed(Button.A, () => {
serial.writeLine("hello")
rotating = false
})
2016-03-26 00:47:20 +01:00
```
* Run the code to see the awesome rotation.
### Challenge 3
Let's also make the image rotate the opposite way when button A is pressed! We can do this with another while loop that is only executed while `not rotating`.