From e36270b4e57564d96a22abfd9805e451913ab029 Mon Sep 17 00:00:00 2001 From: Marc Scott Date: Tue, 24 Feb 2026 16:06:54 +0000 Subject: [PATCH 1/6] chore: update code structure for better readability and maintainability --- en/images/hidden_list.png | Bin 0 -> 13805 bytes en/images/ids_list.png | Bin 0 -> 16167 bytes en/images/positon_platform.png | Bin 0 -> 29250 bytes en/meta.yml | 7 +--- en/step_2.md | 71 ++++++++++++++++++++++++++++++++- en/step_3.md | 22 +++++++++- 6 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 en/images/hidden_list.png create mode 100644 en/images/ids_list.png create mode 100644 en/images/positon_platform.png diff --git a/en/images/hidden_list.png b/en/images/hidden_list.png new file mode 100644 index 0000000000000000000000000000000000000000..bcea6f81cf50e9b808683ea7f74a695ac706002e GIT binary patch literal 13805 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 literal 0 HcmV?d00001 diff --git a/en/images/ids_list.png b/en/images/ids_list.png new file mode 100644 index 0000000000000000000000000000000000000000..a79b91e3b895fefeda708da6a129ca82733c2228 GIT binary patch literal 16167 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

pOMtX4xpnvFCk(+n3Dy4a9C8#^7*$l816d zz+$yNjXM;{%E!ySgzi^~noa|+tMr2I8{eUm9%>Y{lb8N6>?N^Ysp9Oac~K4S)9K>i z*FS^dw%AMXyHYYLMx&2q%Mh7s949d_!#poNQ8iKB)(h0N!@3yO_*z0yes4$^Gm6Yd zVL3j(r-6I<6y+|Sv|(kvXm9b_4Q{q60@yNQ9-d6A82DcSt~HlujSmjq`%sIox0GSX zUhI37?=<1N({ZuwO>!^HxZ^c7o68X1yG;JcmKQc1Mg}NnxAl@vam}Pc(;c`KDFSTL(+=V#O6Ti*1#F!({UAS{uthb`~&teHQ zjn;V-k4W2u)@;u)*AiJ;Z0yNV1aZdw;RaX7n^O17PvjJ6jm0Y^_gMIvxMOEQh>A_^ z!Pssd*OWgU4N3|64SMh2FkZzzSFasO0MrbceBe*pTu)3dsS0<+mDeSZes8SH{b}&T zy6#Ui?ANVw7fylMRKL6L%7D>`iXrefEatK7LkdnX1xymSD6Gh`>T9IoVXw8+1GWo( zoz!B7_YEgGm7SzozJ{2@#pmYE@yv?53SVqaDy7O!c53Z)NlJzSshSWQm^br~Ba?I! zSOVwIW_sVIc{WszhG~$lhPH!udwW)(G(;$=<=0-JVyoq39ce5veMlwJQ2>1tDIEbmChGkflZ9SmE)O&!hSl=fOscK1s0uuD|rEn?Hi z`_S%I`FN+eAhYZhZ9o?`vv;9p!N-P``-R7(E^aNm;P#M$xt)Yt;$;83UVU&>-m)|Sx31K zd$@7;tf~*6?@oei8R5=H_30HdY?#hg>{ytPJ~;YIoEc1K8dwIb8!x)33P?PrYdKq1 zk6wWk1+qsg#f5s_ckv$l_|qb`x^+9&+C;B0yDZb--+w7$_DW7jv0Oy3*u&P#O3}O3)UZYe6AS26Ttad1hgfupb{nsE;Q0wE|pzAxVa?J z3Fs#G$(^lx3m7O=8HB^`+DyS>#;kRkAz9n7pzr-BjRt~a8QR3LnvIupM&o zzHKAix@gO|iD*z=SX!NK!5w#Qt(-{J;}@HqYE^nxL`&MaUx!|y<%(|X&ddh6nXDSw z1@QuXFn@GAw2o!GrJuI==DVCPRcmBwo%As4cd7nN^Tn@*@?O^I#1`a3fiCE*u+w?i zL7pj>eD;ScJEvacuU%nX89g4~@6UGMo@!~Uffzj~4hUHzObiX`%BN*%rb2Et|{I mf_TXk@+aE=M+Xz{DB2k|;`eW4S)c{$kr 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 F1pAfw>3md=GYf34N+57c%9c^*=Hd; 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 G^uGZDX`O-q literal 0 HcmV?d00001 diff --git a/en/meta.yml b/en/meta.yml index 911a8ca..53b2d06 100644 --- a/en/meta.yml +++ b/en/meta.yml @@ -5,10 +5,7 @@ listed: false pdf: false steps: - title: What you will make - - title: Step title + - title: Start your level completion: - engaged - - title: Challenge - challenge: true - completion: - - external + - title: Postion your player and floor diff --git a/en/step_2.md b/en/step_2.md index a55cafd..ad9faac 100644 --- a/en/step_2.md +++ b/en/step_2.md @@ -1,8 +1,77 @@ -## Step title +## Start your level --- task --- +Open the starter project at [rpf.io/pp](https://rpf.io/pp){:target="_blank"} --- /task --- +The project has two sprites. **player** is the sprite that will move between levels. **id floor** is a sprite that will act as a platform, and that you can copy to make other platforms. +--- task --- + +Choose an id or ask your club leader or teacher for one. + +- If you are making a colaborative project with other people in your club or class, it might be your name. *e.g. ellis* +- If you are making a colaborative project with other clubs or classes, it might be your club or class name. *e.g. hull code club or e.g. 7C* + +--- /task --- + +--- task --- + +Change the name of the **id floor** sprite to use your new **id**. *e.g. ellis floor or hull code club floor* + +--- task --- + +In the code for the floor sprite, change the `wait until`{:class="block3control"} blocks, to they are waiting until the `id`{:class="block3variables"} variable matches your new id. + +```blocks3 +when flag clicked +hide ++wait until <(id) = [my id]> ++wait until > +hide +``` + +--- /task --- + +--- task --- + +Add a new message so that the `broadcast id`{:class="block3control"} waits for your id to be broadcast. + +```blocks3 ++when I receive [my id v] +show +set [x position v] to (-180) +set [y position v] to (0) +go to x:(90) y:(-160) +``` + +--- /task --- + +--- task --- + +Add your **id** to the `ids`{:class="block3variables"} list. + +![](images/ids_list.png) + +--- /task --- + +--- task --- + +Hide the `ids`{:class="block3variables"} list. + +![](images/hidden_list.png) + +--- /task --- + +--- task --- + +Click the green flag. The player sprite should be positioned in the bottom left of the screen. +Then press **n** on your keyboard. + +The floor sprite should appear, and the player sprite change position and fall on to it. + +You can move the player sprite using the left and right arrow keys, and use the up arrow key to jump. (⬅️⬆️➡️) + +--- /task --- \ No newline at end of file diff --git a/en/step_3.md b/en/step_3.md index 3285a6d..169b4c5 100644 --- a/en/step_3.md +++ b/en/step_3.md @@ -1,6 +1,26 @@ -## Challenge +## Postion your player and floor + +At the start of your level, you can decide where the player sprite starts and where the floor is positioned. + +The starting position of the player is set by the `x positon`{:class="block3variables"} and `y position`{:class="block3variables"} variables. +The starting positon of the floor **must be set using** the `go to `{:class="block3motion"} --- task --- +Change the starting position of the floor and the starting position of the player. This can be anywhere on the screen that you like. + +```blocks3 +when I receive [my id v] +show ++set [x position v] to (-180) ++set [y position v] to (0) ++go to x:(90) y:(-160) +``` + +Click the green flag and then press **n** to test the positions. --- /task --- + +You can change the floor into a platform if you like. It depends on what your level is going to look like. Change the size of the sprite, its colour, and then it's positon. It must have a black outline though, so that the player can collide with it. + +![](images/positon_platform.png) \ No newline at end of file From 6da542b6b75e9eb35cf413fc5b2bd2e373e8a563 Mon Sep 17 00:00:00 2001 From: Marc Scott Date: Tue, 24 Feb 2026 16:32:54 +0000 Subject: [PATCH 2/6] chore: fix formatting by adding missing task delimiter --- en/step_2.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/step_2.md b/en/step_2.md index ad9faac..4ae0abc 100644 --- a/en/step_2.md +++ b/en/step_2.md @@ -21,6 +21,8 @@ Choose an id or ask your club leader or teacher for one. Change the name of the **id floor** sprite to use your new **id**. *e.g. ellis floor or hull code club floor* +--- /task --- + --- task --- In the code for the floor sprite, change the `wait until`{:class="block3control"} blocks, to they are waiting until the `id`{:class="block3variables"} variable matches your new id. From 1b4d09b2cfa9685c2d425fe454fad3d6dba61f5b Mon Sep 17 00:00:00 2001 From: Marc Scott Date: Tue, 24 Feb 2026 16:37:17 +0000 Subject: [PATCH 3/6] chore: update links and improve clarity in step 2 instructions --- en/step_2.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/en/step_2.md b/en/step_2.md index 4ae0abc..65d892c 100644 --- a/en/step_2.md +++ b/en/step_2.md @@ -2,7 +2,7 @@ --- task --- -Open the starter project at [rpf.io/pp](https://rpf.io/pp){:target="_blank"} +Open the starter project at [rpf.io/pp](https://rpf.io/pp-starter){:target="_blank"} --- /task --- @@ -25,7 +25,7 @@ Change the name of the **id floor** sprite to use your new **id**. *e.g. ellis f --- task --- -In the code for the floor sprite, change the `wait until`{:class="block3control"} blocks, to they are waiting until the `id`{:class="block3variables"} variable matches your new id. +In the code for the floor sprite, change the `wait until`{:class="block3control"} blocks, to they are waiting until the `id`{:class="block3variables"} variable matches your new **id**. ```blocks3 when flag clicked @@ -39,7 +39,7 @@ hide --- task --- -Add a new message so that the `broadcast id`{:class="block3control"} waits for your id to be broadcast. +Add a new message so that the `broadcast`{:class="block3control"} waits for your **id** to be broadcast. ```blocks3 +when I receive [my id v] @@ -70,7 +70,8 @@ Hide the `ids`{:class="block3variables"} list. --- task --- Click the green flag. The player sprite should be positioned in the bottom left of the screen. -Then press **n** on your keyboard. + +Press **n** on your keyboard. The floor sprite should appear, and the player sprite change position and fall on to it. From 845d8372e2c7ae340f3f72b4b9c2f4713ddce8c4 Mon Sep 17 00:00:00 2001 From: Marc Scott Date: Tue, 3 Mar 2026 12:26:11 +0000 Subject: [PATCH 4/6] Add new images and documentation for sprite export process - Added upload.png image for sprite upload instructions. - Created step_4.md and step_5.md for additional steps in the process. - Implemented step_6.md detailing the export process for sprites and instructions for club leaders and teachers on stitching levels together. --- en/images/export.png | Bin 0 -> 12241 bytes en/images/upload.png | Bin 0 -> 12587 bytes en/meta.yml | 1 + en/step_2.md | 7 +++++-- en/step_3.md | 15 ++++++++++++--- en/step_4.md | 42 ++++++++++++++++++++++++++++++++++++++++++ en/step_5.md | 23 +++++++++++++++++++++++ en/step_6.md | 38 ++++++++++++++++++++++++++++++++++++++ 8 files changed, 121 insertions(+), 5 deletions(-) create mode 100644 en/images/export.png create mode 100644 en/images/upload.png create mode 100644 en/step_4.md create mode 100644 en/step_5.md create mode 100644 en/step_6.md diff --git a/en/images/export.png b/en/images/export.png new file mode 100644 index 0000000000000000000000000000000000000000..bb16f7034f7aa7b26b36aea792a3df9601db6d6b GIT binary patch literal 12241 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 ByEgy; literal 0 HcmV?d00001 diff --git a/en/images/upload.png b/en/images/upload.png new file mode 100644 index 0000000000000000000000000000000000000000..e67b546207531b0ff3d99215c89c1edd804ffd48 GIT binary patch literal 12587 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 +wait until > +hide +stop [other scripts in sprite v] +``` + +They will also need to `show`{:class="block3looks"} and have the starting position set using `go to x: y:`{:class="block3motion"} + +```blocks3 +when I receive [my id v] +show +go to x:() y:() +``` + +**If the sprite needs to stop the player's motion, it needs to be `black` in colour.** + +You can add any code you like to your other sprites, underneath a `when I receive`{:class="block3events"} block. + +**If you are creating variables, lists, or custom blocks, make sure they have unique names such as `hull code club score`{:class="block3variables"} or `ellis random move`{:class="block3custom"}** + +New sprites can be things the player can move on, things the player might have to avoid, things the player might have to collect. + +**DO NOT ADD OR CHANGE THE BLOCKS ON THE PLAYER SPRITE** + +If a sprite needs to be interacted with, then it could use `say`{:class="block3looks"} blocks so that the player knows what they need to do. + +```blocks3 +say [collect me] for (1) seconds + +say [avoid me] for (1) seconds +``` \ No newline at end of file diff --git a/en/step_5.md b/en/step_5.md new file mode 100644 index 0000000..2213bfc --- /dev/null +++ b/en/step_5.md @@ -0,0 +1,23 @@ +## End your level + +You need a condition to end your level. + +Your level will end, and the next one will start, when the variable `level change`{:class="block3variables"} is set to `true`. + +You might end your level by the player reaching a score. + +```blocks3 +forever +if <(hull code club score)> [20]> then +set [level change v] to [true] +``` + +You could end your level when the player touches another sprite + +```blocks3 +forever +if then +set [level change v] to [true] +``` + +Or choose another way to end the level. Just remember, you **CAN'T CHANGE THE CODE ON THE PLAYER SPRITE** \ No newline at end of file diff --git a/en/step_6.md b/en/step_6.md new file mode 100644 index 0000000..e3f3a91 --- /dev/null +++ b/en/step_6.md @@ -0,0 +1,38 @@ +## Export your sprites + +Check that your level works and is ready to export. +1. Your sprites all have a name that includes your id +2. Your sprites all have the starter blocks +3. Other blocks are all triggered by a `when I receive my id`{:class="block3events"} block +4. All ner `variables`{:class="block3variables"} and `custom blocks`{:class="block3custom"} use your id in their names. +5. There is an end condition that sets `level change`{:class="block3variables"} to §true§ + +--- task --- + +Right click on each of your sprites and select **export** + +![](images/export.png) + +--- /task --- + +--- task --- + +Send your sprites to your club leader or teacher for them to stitch all the levels together. Make sure they know what your unique `id` is. + +--- /task --- + +--- collapse --- + +--- + +title: Club leaders and Teachers - stitching instructions + +--- + +1. Open and remix the original starter project [rpf.io/pp-starter](https://rpf.io/pp-starter) +2. Remix the project +3. Upload the sprites that have been sent to you. +![](images/upload.png) +4. Add each id to the ids list, in the order you want the levels to play +5. You can add your own starting and final level to the game if you like. +--- /collapse --- \ No newline at end of file From 5ea0aea2d5ee8e1015c18545c1f39631daeceb2d Mon Sep 17 00:00:00 2001 From: Marc Scott Date: Tue, 3 Mar 2026 12:28:28 +0000 Subject: [PATCH 5/6] Add steps for adding sprites, ending the level, and exporting sprites --- en/meta.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/en/meta.yml b/en/meta.yml index f8db7e7..f40c67e 100644 --- a/en/meta.yml +++ b/en/meta.yml @@ -9,4 +9,9 @@ steps: completion: - engaged - title: Postion your player and floor - - title: Owl + - title: Add more sprites + - title: End your level + completion: + - complete + - title: Export your sprites + From dacffc0861e05260c376d1241983f440ddaba115 Mon Sep 17 00:00:00 2001 From: Marc Scott Date: Tue, 3 Mar 2026 12:33:53 +0000 Subject: [PATCH 6/6] Reformat checklist items for sprite instructions in step 4 --- en/step_1.md | 44 +------------------------------------------- en/step_2.md | 6 ++++-- en/step_3.md | 6 +----- en/step_4.md | 17 ++++++----------- 4 files changed, 12 insertions(+), 61 deletions(-) diff --git a/en/step_1.md b/en/step_1.md index 9736879..aed8ea8 100644 --- a/en/step_1.md +++ b/en/step_1.md @@ -1,45 +1,3 @@ ## What you will make -OR -## What you will do - change meta if you use this -A brief description - one or two sentences. - ---- print-only --- - -![ALT TEXT](images/IMAGE.png) - ---- /print-only --- - ---- no-print --- - -[Editor embed](https://editor.raspberrypi.org/en/embed/viewer/project-slug) - ---- /no-print --- - ---- no-print --- - -Video embed - - - -Youtube embed - -

- -

- - -Scratch embed -
- -
- ---- /no-print --- - -### You will need: -- a -- b -- c +A collobatative platformer game, where each person creates a single level of the game. diff --git a/en/step_2.md b/en/step_2.md index 340abec..d64797e 100644 --- a/en/step_2.md +++ b/en/step_2.md @@ -6,9 +6,11 @@ Open the starter project at [rpf.io/pp](https://rpf.io/pp-starter){:target="_bla --- /task --- -The project has two sprites. **player** is the sprite that will move between the levels. +The project has two sprites. -**id floor** is a sprite that will act as a floor to start. +- **player** is the sprite that will move between the levels. + +- **id floor** is a sprite that will act as a floor to start. --- task --- diff --git a/en/step_3.md b/en/step_3.md index d6b705b..e630e85 100644 --- a/en/step_3.md +++ b/en/step_3.md @@ -24,11 +24,7 @@ Click the green flag and then press **n** to test the positions. --- /task --- -You can change the floor into a platform if you like. - -It depends on what your level is going to look like. - -Change the size of the sprite, its colour, and then it's positon. +You can change the floor into a platform if you like. It depends on what your level is going to look like. You can change the size of the sprite, its colour, and then it's positon. It must have a black outline though, so that the player can collide with it. diff --git a/en/step_4.md b/en/step_4.md index c8d255c..5e434aa 100644 --- a/en/step_4.md +++ b/en/step_4.md @@ -23,17 +23,12 @@ show go to x:() y:() ``` -**If the sprite needs to stop the player's motion, it needs to be `black` in colour.** - -You can add any code you like to your other sprites, underneath a `when I receive`{:class="block3events"} block. - -**If you are creating variables, lists, or custom blocks, make sure they have unique names such as `hull code club score`{:class="block3variables"} or `ellis random move`{:class="block3custom"}** - -New sprites can be things the player can move on, things the player might have to avoid, things the player might have to collect. - -**DO NOT ADD OR CHANGE THE BLOCKS ON THE PLAYER SPRITE** - -If a sprite needs to be interacted with, then it could use `say`{:class="block3looks"} blocks so that the player knows what they need to do. +- [ ] **If the sprite needs to stop the player's motion, it needs to be `black` in colour.** +- [ ] You can add any code you like to your other sprites, underneath a `when I receive`{:class="block3events"} block. +- [ ] **If you are creating variables, lists, or custom blocks, make sure they have unique names such as `hull code club score`{:class="block3variables"} or `ellis random move`{:class="block3custom"}** +- [ ] New sprites can be things the player can move on, things the player might have to avoid, things the player might have to collect. +- [ ] **DO NOT ADD OR CHANGE THE BLOCKS ON THE PLAYER SPRITE** +- [ ] If a sprite needs to be interacted with, then it could use `say`{:class="block3looks"} blocks so that the player knows what they need to do. ```blocks3 say [collect me] for (1) seconds