Scratch imposes limits on both the minimum and maximum size of a sprite which depend on the dimensions of its current costume. It is possible to go beyond both limits and this tutorial shows how.


Note Warning: Going beyond the limits may result in unexpected behavior with no guarantee that the sprite will look the same across all devices.[1]

Tutorial

Large Size

To make a sprite larger than it is normally possible, create a costume with a width and height of 0. This is achieved by editing an empty canvas in vector mode (delete all shapes or use the eraser tool).

The code is as simple as switching to the 0x0 costume and setting the size:

switch costume to (blank v) // this is the 0x0 costume which allows a large size
set size to (10000)% // set size to a large value
switch costume to (costume1 v) // switch to the costume you want to see

This can be made into a custom block script that remembers the current costume and switches back after setting the size:

define set large size (size)
set [costume v] to (costume [number v]) // this remembers the costume number
switch costume to (blank v)
set size to (size)%
switch costume to (costume) // switch costume back

This allows sizes between 100% and Infinity.

Small Size

To make a sprite smaller than normally possible, create a large vector costume. This can be achieved by drawing a rectangle shape that is the size of the screen or larger.

The code is as simple as switching to the large costume and setting the size:

switch costume to (large v) // this is the large costume which allows a small size
set size to (1)% // set size to a small value
switch costume to (costume1 v) // switch to the costume you want to see

Custom block:

define set small size (size)
set [costume v] to (costume [number v]) // this remembers the costume number
switch costume to (large v)
set size to (size)%
switch costume to (costume) // switch costume back

Small and Large Size

The above two methods can be combined so that a sprite can be set to both small and large sizes. This requires having both a small and large costume.

define set size (size)
set [costume v] to (costume [number v]) // this remembers the costume number
if <(size) < [100]> then
  switch costume to (large v)
else
  switch costume to (blank v)
end
set size to (size)%
switch costume to (costume) // switch costume back

See Also

References