Document stub.png This article or section may not have content matching Scratch Wiki editing standards. Please improve it according to Scratch Wiki:Guidelines and Scratch Wiki:Editing Conventions. (December 2020)

Top down scrollers are a very common type of game in Scratch as they are generally easy to make. A top down scroller consists of a scrolling map with walls and objects. There is a player that moves around the map and can be blocked by walls and other obstacles. There can be weapons, enemies, collectables or even inventory systems.

Scrolling

First, a scrolling base is needed (please note that there will be no walls yet). It can be made by drawing levels or by uploading images. If you are drawing it, try to use vector, then convert to bitmap to trim of the edges (this is very important). Do not put any wall or obstacles as that will be for the wall sprite. (if you are uploading a picture then you can keep it. Once you have the levels, label them for easier scripting. The middle one should be 0,0, the one on the right should be 1,0, and so on. Then make a player, it should be about 50 x 50 pixels big.

Making the scripts

Make 2 variables in the player sprite and make sure that they are for all sprites.

 (scroll x) 
(scroll y) 

Then go to the map and make these local variables and this custom block:

 (x)
(y) 
 define clone at (x) (y) (costume) 
set [x v] to ((0) - ((x) * (480)))
set [y v] to ((0) - ((y) * (360)))
switch costume to (costume)
create clone of (myself v)

Then you can put the when green flag clicked block and create a clone block at the desired location and the correct costume all the way through all the map costumes. Use the labels as guides to what number to put. Make sure to put a wait 0.01 seconds block before just so the clones don't get deleted right when they are cloned (by the last script in this section)

Then make this script:

when I start as a clone
forever
 go to x: ((scroll x) - (x)) y: ((scroll y ) - (y))
 if <<(x position) = ((scroll x) - (x))> and < (y position) = ((scroll y) - (y)) >> then
  show
 else
  hide
 end
end 

Before moving on, add this script to prevent clones from stacking on top of each other:

when green flag clicked
delete this clone

Player Movement

Once you have the map, you need a movement system that has wall sensing and scrolling. To begin, duplicate the map sprite but name it wall. Then add walls and obstacles. Finally delete the map, leaving just the obstacles. If you are uploading an image, redraw the wall's shape (don't waste time drawing the insides) and set ghost effect to 100. Do not use the hide block for this. You can also make it sense the color of the walls if the image has walls of the exact color.

Making the scripts

start by making this script in the player sprite:

when green flag clicked
go to x:(0) y:(0)
forever
 if <key (up arrow v) pressed> then
  change y by (10) //or whatever you want to player speed to be (4 is slow, 8 is normal, 15 is fast)
  if <touching (wall v)> then
  change y by (-10) // or whatever you put in the top
  end
 end
 if <key (up arrow v) pressed> then
  change y by (-10) //do the negative of what you put for the up movement 
  if <touching (wall v)> then
  change y by (10) //same as previous
  end
 end
 if <key (up left arrow v) pressed> then
  change x by (10) 
  if <touching (wall v)> then
  change x by (-10)
  end
 end
 if <key (up right arrow v) pressed> then
  change x by (-10) 
  if <touching (wall v)> then
  change x by (10)
  end
 end
 change [scroll x v] by ((0) - (x position))
 change [scroll y v] by ((0) - (y position))
 go to x: (0) y: (0)
end

That is all the scripts for player movement and wall detection.

Getting Advanced

The scripts above are just to get you started, here are some advanced ways to make your game more fun.

Enemies

Enemies are things that try to kill your player. To make an enemy, you have to combine the scripts of the player and the walls, and add some more code. To do this, duplicate the player sprite, but delete the ending 3 blocks. Then you can get the cloning scripts from the walls, and the rest is up to you. There are many type of enemies, including dumb ones that glide straight to your player, smart ones the identifies a path to your player, and semi-smart ones that are a combination of both. They are harder to make, so it they are not included in this tutorial.

Achievements

Achievements are things that you have to do a specific thing or things to get. Achievements can vary greatly, so it is up to you to decide what to make. However, an achievement needs a trigger, such as getting a certain amount of coins or winning a level in hardcore.

Collectables

Collectables are things that you can collect, in most cases it is coins or currency that can be traded for items. They can also be skill points that increase your level. It can also be pieces that the player need to collect in order to win a level.

Finishing Up

Once everything that is wanted in the game has been done, the project can be shared with the community. Top down scrollers are very common, but they vary greatly. Before making it official, be sure to make sure it has no obvious glitches or bugs.

Examples

Cookies help us deliver our services. By using our services, you agree to our use of cookies.