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/banner.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 removed en/images/hidden_list.png
Binary file not shown.
Binary file removed en/images/ids_list.png
Binary file not shown.
Binary file added en/images/levels_list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 2 additions & 4 deletions en/meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@ steps:
- title: Start your level
completion:
- engaged
- title: Postion your player and floor
- title: Add more sprites
- title: End your level
- title: Create your level
- title: Share your level
completion:
- complete
- title: Export your sprites

2 changes: 1 addition & 1 deletion en/step_1.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
## What you will make

A collobatative platformer game, where each person creates a single level of the game.
A collaborative game, where each person creates a single level of the game.
68 changes: 25 additions & 43 deletions en/step_2.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,84 +2,66 @@

--- task ---

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

--- /task ---

The project has two sprites.

- **player** is the sprite that will move between the levels.
Click the green flag to start the game.
1. On the first level the green player sprite will fall to the floor. Use the right arrow key (➡️) to move the player sprite to the end of the screen.
2. The next level will start, showing the Scratch cat appear for three seconds.
3. The next level will start. Move the purple player sprite to the end of the screen to start the game again.

- **id floor** is a sprite that will act as a floor to start.
You're going to make your own level, adding your own sprites and code.

--- task ---

Choose an id or ask your club leader or teacher for one.
Choose a name for your level. It has to be unique to you, and something nobody else would choose. It's a little like a username.

- If you are making a colaborative project with other people in your club or class, it might be your name. *e.g. ellis*
Replace `my level`{:class="block3variables"} in the `levels`{:class="block3variables"} list, so that your level name appears as the second item.

- 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*
![](images/levels_list.png)

--- /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 ---
`my level cat` is a sprite that has the scripts you need for your level.

--- 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**.
This script makes sure that your sprites appears at the start of your level and dissappears when your level has been completed.

Edit the `wait until`{:class="block3control"} blocks, so that `level`{:class="block3variables"} is compared to the level name you added to the list.

```blocks3
when flag clicked
when i receive [start v]
hide
+wait until <(id) = [my id]>
+wait until <not<(id) = [my id]>>
+ wait until <(level) = [my level]> //change this to your level name
+ wait until <not<(level) = [my level]>> //change this to your level name
hide
stop [other scripts in sprite v]
```

--- /task ---

--- task ---

Add a new message so that the `broadcast`{:class="block3control"} waits for your **id** to be broadcast.
Edit the script that starts your logic, by adding a broadcast that matches your level name.

```blocks3
+when I receive [my id v]
Change the `say`{:class="block3looks"} block so the cat says something different.

+ when I receive [my level v] //add a broadcast message matching your level name
show
set [x position v] to (-180)
set [y position v] to (0)
go to x:(90) y:(-160)
```
+ say [my easy level] for [3] seconds //add your own message here to test

--- /task ---

--- task ---

Add your **id** to the `ids`{:class="block3variables"} list.

![](images/ids_list.png)

--- /task ---

--- task ---
Click the green flag.

Hide the `ids`{:class="block3variables"} list.
Complete the first level by moving the player sprite to the right of the screen.

![](images/hidden_list.png)
Make sure that the Scratch cat still appears and says the text your wrote.

--- /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 ---
41 changes: 25 additions & 16 deletions en/step_3.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,40 @@
## Postion your player and floor
## Create your level

At the start of your level, you can decide where the player sprite starts and where the floor is positioned.
You can add any sprites you like to the game, or duplicate the cat sprite and change its costume. Rename the sprites so that their name includes your unique level name.

The starting position of the player is set by the `x positon`{:class="block3variables"} and `y position`{:class="block3variables"} variables.
Your level can be about anything you choose. Here are the rules that you must follow.

The starting positon of the floor **must be set using** the `go to x: y:`{:class="block3motion"}
1. You can't use `when flag clicked`{:class="block3events"} blocks.
2. `when I receive my level`{:class="block3events"} is the block that will start your scripts.
3. All variables, lists, or custom blocks you add must be named using your unique level name. e.g. `my_level_name score`{:class="block3variables"}
4. You can not change the code on the sprites included in the starter project. Leave `start player`, `end player`, `start floor` and `end floor` alone.
5. You can not add or edit code on the Stage. You can not add Backdrops. If you want your own background scenery then it will have to be a sprite.
6. If the player needs instructions for your level, they need to be included by having sprites `say`{:class="block3looks"} what needs to be done.
7. Set the starting position of **all** your sprites, using `go to x: y:`{:class="block3motion"} blocks.

--- task ---
Your level needs to end at some point. Maybe the player reaches a goal, answers some questions, achieves a certain score.

Change the starting position of the floor and the starting position of the player.
The following code is included with the `my level cat`. This will end your level and progress to the next level.

This can be anywhere on the screen that you like.
```blocks3
set [level change v] to [true]
hide
stop [this script v]
```

In testing, your sprites might not be visible. You can press **M** on your keyboard to reveal sprites, so long as they have this script on them.

```blocks3
when I receive [my id v]
when I receive [edit mode 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.
In testing you might want to manually move to the next level. You can press **N** on your keyboard to set `level change`{:class="block3variables"} to `true` and move to the next level.

--- /task ---
--- 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.
Add sprites, variables and code blocks to make your own level.

It must have a black outline though, so that the player can collide with it.
When you are done you should be able to click the green flag, complete the first level, see your level and complete it, see the end level.

![](images/positon_platform.png)
--- /task ---
45 changes: 17 additions & 28 deletions en/step_4.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,26 @@
## Add more sprites
## Share your level

You can add more sprites to your game.
--- task ---

Every sprite needs a unique name, so use your id such as `ellis Bear-walking` or `hull code club Cheesy Puffs`
When you are happy that your level works, save your project and share it with your club leader, teacher, or whomever is going to stitch the levels together.

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

```blocks3
when flag clicked
hide
wait until <(id) = [my id]>
wait until <not<(id) = [my id]>>
hide
stop [other scripts in sprite v]
```
--- collapse ---

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:()
```
title: Stitching the project together

- [ ] **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
1. Open the project that has been shared with you.
2. Click on each of the sprites that are in the project and export them.
![](images/export.png)
3. Open the original starter project and remix it.
4. Import all the sprites you exported.
![](images/upload.png)
5. Repeat for each project that has been shared with you.

say [avoid me] for (1) seconds
```

--- /collapse ---
23 changes: 0 additions & 23 deletions en/step_5.md

This file was deleted.

38 changes: 0 additions & 38 deletions en/step_6.md

This file was deleted.