Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added en/images/export.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/images/hidden_list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/images/ids_list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/images/positon_platform.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added en/images/upload.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 7 additions & 4 deletions en/meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@ listed: false
pdf: false
steps:
- title: What you will make
- title: Step title
- title: Start your level
completion:
- engaged
- title: Challenge
challenge: true
- title: Postion your player and floor
- title: Add more sprites
- title: End your level
completion:
- external
- complete
- title: Export your sprites

44 changes: 1 addition & 43 deletions en/step_1.md
Original file line number Diff line number Diff line change
@@ -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

<video width="640" height="360" controls>
<source src="images/videoname.mp4" type="video/mp4">
</video>

Youtube embed
<html>
<div style="position: relative; overflow: hidden; padding-top: 56.25%;">
<iframe style="position: absolute; top: 0; left: 0; right: 0; width: 100%; height: 100%; border: none;" src="https://www.youtube.com/embed/XXXXXXXXX?rel=0&cc_load_policy=1" allowfullscreen allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share">
</iframe>
</div><br>
</html>

Scratch embed
<div class="scratch-preview">
<iframe allowtransparency="true" width="485" height="402" src="https://scratch.mit.edu/projects/embed/XXXXXXXXX/?autostart=false" frameborder="0"></iframe>
</div>

--- /no-print ---

### You will need:
- a
- b
- c
A collobatative platformer game, where each person creates a single level of the game.
79 changes: 78 additions & 1 deletion en/step_2.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,85 @@
## Step title
## Start your level

--- task ---

Open the starter project at [rpf.io/pp](https://rpf.io/pp-starter){:target="_blank"}

--- /task ---

The project has two sprites.

- **player** is the sprite that will move between the levels.

- **id floor** is a sprite that will act as a floor to start.

--- 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 ---

--- 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 <not<(id) = [my id]>>
hide
```

--- /task ---

--- task ---

Add a new message so that the `broadcast`{: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.

Press **n** on your keyboard.

The floor sprite should appear, and the player sprite changes position and falls 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 ---
27 changes: 26 additions & 1 deletion en/step_3.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,31 @@
## 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 x: y:`{: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. 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.

![](images/positon_platform.png)
37 changes: 37 additions & 0 deletions en/step_4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
## Add more sprites

You can add more sprites to your game.

Every sprite needs a unique name, so use your id such as `ellis Bear-walking` or `hull code club Cheesy Puffs`

Every sprite must have the starting script and use your id.

```blocks3
when flag clicked
hide
wait until <(id) = [my id]>
wait until <not<(id) = [my id]>>
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
```
23 changes: 23 additions & 0 deletions en/step_5.md
Original file line number Diff line number Diff line change
@@ -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 <touching (Player v) ?> 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**
38 changes: 38 additions & 0 deletions en/step_6.md
Original file line number Diff line number Diff line change
@@ -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 ---